appendix a: cobol 85 language formats - home - …978-1-349-20811-1/1.pdf · appendix a: cobol 85...

53
Appendix A: COBOL 85 Language Formats These formats on the following pages represent the full 1985 American National Standard (ANS) for COBOL. The rules for interpreting the formats are as follows (a) All underlined upper-case words are required when the functions of which these are a part are used. Upper-case words which are not underlined are optional. (b) Lower-case words are generic terms used to represent such entities as words, literals, etc. (c) Brackets, [J, enclose a selection of options, one (and only one) or none of which may be chosen. (d) Braces, {}, enclose a selection of options, one (and only one) of which must be chosen. (e) An ellipsis, ... , indicates that the position of the format immediately on its left may be repeated. FORMAT FOR IDENTIFICATION DIVISION IDENTIFICATIOK DIVISION. PROGRAN- ID. program-name [IS {I t} PROGRA'1 J . [AUTHOR. [comment-entry] ... ] [INSTALLATION. [coll1I:lent-entry] [DATE-HRITTEX. [comment-en try] [comment-entry] , .. [SECURITY. [conment-entry] ... ] 240

Upload: buithien

Post on 30-Aug-2018

231 views

Category:

Documents


0 download

TRANSCRIPT

Appendix A: COBOL 85 Language Formats

These formats on the following pages represent the full 1985 American National Standard (ANS) for COBOL.

The rules for interpreting the formats are as follows

(a) All underlined upper-case words are required when the functions of which these are a part are used. Upper-case words which are not underlined are optional.

(b) Lower-case words are generic terms used to represent such entities as words, literals, etc.

(c) Brackets, [J, enclose a selection of options, one (and only one) or none of which may be chosen.

(d) Braces, {}, enclose a selection of options, one (and only one) of which must be chosen.

(e) An ellipsis, ... , indicates that the position of the format immediately on its left may be repeated.

GE~ERAL FORMAT FOR IDENTIFICATION DIVISION

IDENTIFICATIOK DIVISION.

PROGRAN- ID. program-name [IS {I ~~~~~~L t} PROGRA'1 J . [AUTHOR. [comment-entry] ... ]

[INSTALLATION. [coll1I:lent-entry]

[DATE-HRITTEX. [comment-en try]

[DATE-CO~~ILID. [comment-entry] , ..

[SECURITY. [conment-entry] ... ]

240

Appendix A: COBOL 85 Language Formats 241

GENERAL FORMAT FOR ENVIRONMENT DIVISION

(ENVIRONMENT DIVISION.

(CONFIGURATION SECTION.

(SOURCE-COMPUTER. [computer-name (WITH DEBUGGI~G NODE].]]

[OBJECT-COMPUTER. [computer-name

~'!EMORY SIZE integer-1 j=CTERSfl] L lMoDULES

[PROGRAN COLLATING SEQUENCE IS alphabet-name-1]

(SEGHENT-LHIIT IS segment-number].]]

(SPECIAL-NANES. [( imp1ementor-name-1

liS rrmemonic-name-1 (QN STATUS IS condit~on-name-1 [OFF STATUS IS

IS mnemon~c-name-2 [OFF STATUS IS conditJ.on-name-2 [QN STATUS IS

QN STATUS IS condition-name-1 [OFF STATL'S IS condition-name-2]

OFF STATUS IS condition-name-2 [Qli STATUS IS condition-name-1]

[ALPHABET alphabet-name~1 IS

STANDARD-1 STANDARD-2 NATIVE implementor-name-2 I

THRU f 11tera1-2 \ [{THROUGH) . l) l 'ALSO literal-3) . . . ( ...

condition-name-1] ]~

condition-name-2] l)l ~ ...

[sYMBOLIC CHARACTERS {{{symbolic-character-1' ... {!;E} {integer-1} ... } ...

[IN a1phabet-name-2]} J

[cLASS c1ass-name-1 IS {1iteral-4

[CURRENCY SIGN IS 1iteral-6]

[DECIMAL-POINT IS COMMA].]]]

[{ THROUGH} . J } ] TI!RU htera1-5 . . • . •.

242 COBOL 85 Programming

GENERAL FORMAT FOR ENVIRONMENT DIVISION

[INPUT-OUTPUT SECTION.

FILE-CONTROL.

{file-control-entry:·

[I -0-CONTROL.

[[- [~ { file-name-1 }] impl emer. tor-name-1

EVERY

j [END OF] UNIT . OF l. {REEL} I ) integer-1 RECORDS'

integer-2 CLOCK-UNITS condition-name-1

[ SAME [~~~RD ] AREA FOR file-name-3 { file-name-4) ... ] ... SORT -~IERGE

file-name-2 ~] ~ ...

[MULTIPLE FILE TAPE CONTAINS {file-name-S [POSITION integer-3]) ... ] .... ] ] ] ]

Appendix A: COBOL 85 Language Formats 243

GENERAL FORMAT FOR FILE CONTROL ENTRY

SEQUENTIAL FILE:

SELECT [OPTIONAL] file-name-1

ASSIGN TO {i~p1ementor-name-1} --- 1~tera1-1

[RESERVE integer-1 [!::s J J ([ORGANIZATION IS] SEQUENTIAL]

[ PADDING CHARACTER IS {data-name-1}] 1itera1-2

[ RECORD DELIMITER IS {STANDARD-1 }] ----- imp1ementor-name-2

[ACCESS MODE IS SEQUENTIAL]

[FILE~ IS data-name-2].

RELATIVE FILE:

SELECT [OPTIONAL] file-name-1

ASSIGN TO {i~p1ementor-name-1} --- 1~tera1-1

[RESERVE integer-1

[ORGANIZATION IS]

[AREA]] AREAS

RELATIVE

[ "'"" ''"" " [FILE STATUS IS

I SEQUENTIAL

{ RANDOM } DYNAMIC

' data-name-2].

[RELATIVE KEY IS data-name-1]}]

RELATIVE KEY IS data-name-1

244 COBOL 85 Programming

GENERAL FORMAT FOR FILE CONTROL ENTRY

INDEXED FILE:

SELECT [OPTIONAL) fi1e-name-1

ASSIGN TO {i~p1ementor-name-1} --- 1Hera1-1

[RESERVE integer-1 [~~~S J J [ORGANIZATION IS) INDEXED

[ {SEQUENTIAL'}]

ACCESS HODE IS RANDOM DYNAMIC

~ KEY IS data-name-1

[ALTERNATE RECORD KEY IS data-name-2 [HITH DUPLICATES)) •••

[FILE STATUS IS data-name-3).

SORT OR MERGE FILE:

SELECT fi1e-name-1 ASSIGN TO { imp1ementor-name-1} li tera1-1

Appendix A: COBOL 85 Language Formats 245

GENERAL FORMAT FOR FILE CONTROL ENTRY

REPORT FILE:

SELECT [OPTIONAL] file-name-1

ASSIGN TO {implementor-name-!} --- literal-!

[RESERVE integer-! [~]] ([ORGANIZATION IS] SEQUENTIAL]]

[PADDING CHARACTER IS {data-name-1}] literal-2

~RECORD DELIMITER IS {STANDARD-! }] L--- implementor-name-2

[ACCESS MODE IS SEQUENTIAL]

[FILE STATUS IS data-name-2].

246 COBOL 85 Programming

GENERAL FORMAT FOR DATA DIVISION

(DATA DIVISION.

[FILE SECTION.

[file-description-entry {record-description-entry} ... sort-merge-file-description-entry {record-description-entry} report-file-description-entry

[WORKING-STORAGE SECTION.

[ 77-level-description-entry J ... J record-description-entry

[Lim<AGE SECTION.

[77-levdedl-des:ri~tion-entry J ... J recor - escrlptlon-entry

[COMMUNICATION SECTION.

. .. ] ... ]

[communication-description-entry [record-description-entry] ... ) ... )

(REPORT SECTION.

[report-description-entry {report-group-description-entry} ... ) ... )]

Appendix A: COBOL 85 Language Formats 247

GENERAL FORMAT FOR FILE DESCRIPTION ENTRY

SEQUENTIAL FILE:

Ell. file-name-1

[IS EXTERNAL)

[IS GLOBAL)

[BLOCK CONTAINS [integer-! IQ) integer-2 { RECORDS }] CHARACTERS

RECORD IS ~ IN SIZE [[FROM integer-4] [IQ integer-S) f lCONTAINS integer-3 CHARACTERS

[DEPENDING ON data-name-1)

CONTAINS integer-6 IQ integer-? CHARACTERS

[LABEL {:~g:S I~} {~}] [-vALUE Qf {implementor-name-! IS {'data-name-2}. }

literal-1

r, {RECORD IS } lDATA RECORDS ARE {data-name-3} .•. J

... ]

rLINAGE IS {data-name-4} LINES [WITH FOOTI~G AT {~ata-naille-S}] l integer-S --- 1nteger-9

[LINES AT TOP {data-name•6}1 [LINES AT BOTTON {~ata-name-?}] J - integer-10 J --- 1nteger-ll

[CODE-SET IS alphabet-name-!).

248 COBOL 85 Programming

GENERAL FORMAT FOR FILE DESCRIPTION ENTRY

RELATIVE FILE :

FD file-name-1

[IS EXTERNAL]

[IS GLOBAL]

[BLOCK CONTAINS [integer-1 IQ] integer-2 {~~~iERS}]

[RECORD l ~~N~:~~~N~n~:g::~~ ~~:~T~::eger-4] [IQ integer-S] CHARACTERS ]ll --- [DEPENDING ON data-name-1]

CONTAINS integer-6 IQ integer-7 CHARACTERS

h f RECORD IS } {'STANDARD},] lLABEL t RECORDS ARE OHITTED

[; { , {data-name-2}, } LVALUE QE ~mp1ementor-name-1 IS 1itera1 _1 ... ] h {RECORD IS .} , J lllATA RECORDS ARE {data-name-3; • . • .

Appendix A: COBOL 85 Language Formats 249

GENERAL FORMAT FOR FILE DESCRIPTION ENTRY

INDEXED FILE :

rn file-name-1

[IS EXTERNAL]

[IS GLOBAL]

[BLOCK CONTAINS (integer-1 TO] integer-2 {RECORDS l] CHARACTERS f

RECORD IS VARYING IN SIZE [[FROM integer-4] [IQ integer-S] [ ICONTAINS integer-3 CHARACTERS

--- [DEPENDING ON data-name-1]

CONTAINS integer-6 IQ integer-7 CHARACTERS

[LABEL { ~~~:S I!RE} { ;~~~~} J [vALUE Q[ {imp1ementor-name-1 IS { data-name-2}}

litera1-1

r {'RECORD IS } LDATA RECORDS ARE (data-name-3) ... ] .

.. ·]

250 COBOL 85 Programming

GENERAL FORMAT FOR FILE DESCRIPTION ENTRY

SORT NERGE FILE:

Sl) f ile-name-1

l CONTAINS integer-1 CHARACTERS ll IS VARYING IN SIZE ((FROM integer-2) [IQ integer-3] Ca\RACTERS)

(DEPENDING ON data-name-1)

CONTAINS integer-4 IQ integer-S CHARACTERS

[DATA {~ I!ru:} {data-name-2} ..• J

REPORT FILE:

FD file-name-1

[IS EXTERNAL)

(IS GLOBAL)

[BLOCK CONTAINS (integer-1 IQ) integer-2 {~~iERs}]

[RECORD {CONTAINS integer-3 CHARACTERS }] CONTAINS integer-4 IQ integer-S CHARACTERS

r.LABEL {RECORD IS } {STANDARD}] L RECORDS ARE OMITTED

[vALUE OF { imp1ementor-name-1 IS {~~~:~:~:~-l} ~ ... J (CODE-SET IS a1phabet-name-1)

jREPORT IS } , REPORTS ARE {report-name-1; t--

Appendix A: COBOL 85 Language Formats 251

GENERAL FORMAT FOR DATA DESCRIPTION ENTRY

FORNAT 1:

level-number [data-name-1] FILLER

[REDEFINES data-name-2]

[IS EXTERNAL]

[IS GLOBAL]

[ { ~~~TURE} IS character-string]

l BINARY ll =UTATIONAL

DISPLAY INDEX PACKED-.DEC !MAL

[[SIGN IS] {LEADING t J TRAIUNGj [SEPARATE CHARACTER]

OCCURS integer-2 TIMES

[{ASCENDING } KEY IS {data-name-3} ... J ... DESCENDING

[INDEXED BY {index-name-L . . . ]

OCCURS integer-1 TO integer-2 THIES DEPE:\DING ON data-name-~

[{ASCENDING } KEY IS (data-name-3:' ... J ... DESCENDING

[ I.NilEX£ll BY { index-name-1 ·. . . . ]

[{ SYNCHRONIZED} [LEFT J J SYNC RIGHT

[{JUSTIFIED l RIGHT] J..l.lli.I J

[BLANK HHEN ZERO]

[VALUE IS literal-1].

252 COBOL 85 Programming

GENERAL FORMAT FOR DATA DESCRIPTION ENTRY

FORMAT 2:

66 data-narne-1 ~ data-narne-2 [{~~~~UGH} data-narne-3 J

FORJ>!AT 3:

88 condition-narne-1 { VALUE IS } { . [{THROUGH} . J } VALUES ARE 1~tera1-1 THRU 1~tera1-2 ...

FORMAT 1:

CD cd -name-1

Appendix A: COBOL 85 Language Formats 253

GENERAL FORMAT FOR COMMUNICATION DESCRIPTION ENTRY

[ [SYNBOLIC QUEUE IS data-name-1] l [SY}ffiOLIC SUB-QUEUE-1 IS data-name-2]

[SY}ffiOLIC SUB-QUEUE-2 IS data-natne-3]

[STI·ffiOLIC SUB-QUEUE-3 IS data-name-4]

[~ffiSSAGE DATE IS data-name-5]

[}ffiSSAGE TIME IS data-name-6]

[SYMBOLIC SOURCE IS data-name-7]

FOR [INITIAL] INPUT [TEXT LENGTH IS data-name-8]

[END KEY IS data-name-9]

[STATUS KEY IS data-name-10]

[MESSAGE COUNT IS data-name-11]]

[data-name-1, data-name-2, data-name-3,

data-name-4, data-name-5, data-name-6,

data-name-7, data-name-8, data-name-9,

data-name-10, data-name-11]

254 COBOL 85 Programming

GENERAL FORMAT FOR COMMUNICATION DESCRIPTION ENTRY

FORMAT 2:

CD cd-name-1 FOR OUTPUT

[DESTINATION COUNT IS data-name-1]

[TEXT LENGTH IS data-name-2]

[STATUS KEY IS data-name-3]

[DESTINATION TABLE OCCURS integer-1 TIMES

[INDEXED BY {index-name-1} ]]

[ERROR KEY IS data-name-4]

[SYMBOLIC DESTINATION IS data-name-S].

FORMAT 3:

CD cd-name-1

FOR [INITIAL]

'

[[MESSAGE DATE IS data-name-1] 1 [MESSAGE TIME IS data-name-2]

[SYMBOLIC TERMINAL IS data-name-3] ·1

1

i [TEXT LENGTH IS data-name-4] I

::::~:YK:: ::t::::::::~-6]] I

l' [data-name-1, data-name-2, data-name-3, j data-name-4, data-name-S, data-name-6]

Appendix A: COBOL 85 Language Formats 255

GENERAL FORMAT FOR REPORT DESCRIPTION ENTRY

RD report-name-1

[IS GLOBAL]

[CODE literal-1]

[{,CONTROL IS } {{data-name-1} ... CONTROLS ARE FINAL (data-name-1]

[ PAGE [LIMIT IS J integer-1 [LIXE J -- LIMITS ARE LIXES (HEADING integer-2]

[FIRST DETAIL integer-3] [LAST DETAIL integer-4]

[FOOTING integer-S]].

GENERAL FORMAT FOR REPORT GROUP DESCRIPTION ENTRY

FORMAT 1:

01 [data-name-1]

[LINE :-il}}IBER IS {. integer-1 [ON NEXT PAGE].l] PLUS integer-2 (

NEXT GROUP IS , PLUS in teger-4 [ !integer-3 /]

/NEXT PAGE f

TYPE IS

{~PORT HEADI::-lG}

{.!'AGE HEADING)

PH f { CONTROL HEADING} {data-name-2}

CH FI::AL

{~~TAIL}

{ ~~NTROL FOOTING}

{ PAGE FOOTING)_

ff J {~;PORT FOOTING}

{. data-name-3 }. FINAL

[ [l:SAGE IS] DISPLAY].

256 COBOL 85 Programming

GENERAL FORMAT FOR REPORT GROUP DESCRIPTION ENTRY

FORMAT 2:

level-number [data-name-1]

lLINE Nm!BER IS {integer-! (ON NEXT PAGE]}] L-- PLUS Integer-2

([USAGE IS] DISPLAY] •

FORMAT 3:

level-number (data-name-1]

{ PICTURE}' PIC IS character-string

((USAGE IS] DISPLAY]

[[ SIGN IS] {LEADING } SEPARATE CHARACTER] --' TRAILING

[ {=IFIED} RIGHT J (BLANK l.ffiEN ZERO]

lLI!'<E NID!BER IS {integ.::r-1 [ON NEXT PAGE]}] l-- PLUS mteger-2

(COLU}ffi NUMBER IS integer-3]

SOURCE IS identifier-!

VALUE IS literal-!

{SUM {identifier-2} [UPON {data-name-2} •.. ]} ...

[RESET ON { ~~~1~name-3 } J (GROUP INDICATE].

FORMAT 1:

Appendix A: COBOL 85 Language Formats 257

GENERAL FORMAT FOR PROCEDURE DIVISION

[PROCEDURE DIVISION [USinG {data-name-1} ,,, ],

[DECLARATIVE$.

{section-name ~ [segment-number].

USE statement.

[paragraph-name.

[sentence] ... ] .. . } ...

ID'ffi DECLARAIIVES. ]

{section-name SECTION [segment-number].

[paragraph-name.

[sentence] ... ] .. . } ... ]

FORMAT 2:

[PROCEDURE DIVISION [USING {data-name-1} ... ].

{paragraph-name.

[sentence] ... } •.• ]

258 COBOL 85 Programming

GENERAL FORMAT FOR COBOL VERBS

ACCEPT identifier-1 [FROH rnnernonic-narne-1]

ACCEPT identifier-2 FROH )~:OF-WEEK l l TIHE

ACCEPT cd-narne-1 MESSAGE COUNT

ADD {identifier-1} - litera1-1 TO {identifier-2 [ROUNDED]} ...

[ON SIZE ERROR irnperative-staternent-1]

[NQJ ON SIZE ERROR irnperative-staternent-2]

[END-ADD]

ADD {identifier-1} -- litera1-l

TO {i~entifier-2} htera1-2

GIVING {identifier-} [ROUNDED]) ...

[ON SIZE ERROR irnperative-staternent-1]

[NOT ON SIZE ERROR irnperative-staternent-2]

[END-ADD]

ADD {~ESPONDING} identifier-1 TO identifier-2 [ROUNDED]

[ON ~ ~ irnperative-staternent-1]

[NQI ON SIZE ERROR irnperative-statement-2]

[END-ADD]

ALTER {procedure-narne-1 IQ [PROCEED IQ] procedure-name-2) ...

CALL {identifier-!} [usiNG {[BY REFERENCE] {identifier-2} ... } J literal-! -- BY CONTENT {identifier-2} .. • "'

[ON OVERFLO\ol irnperative-staternent-1]

[END-CALL]

srv

C:...L

Appendix A: COBOL 85 Language Formats 259

GENERAL FORMAT FOR COBOL VERBS

CALL {i~entifier-1} 1ltera1-l [USING {[BY REFERENCE) {identifier-2} ···} J

-- BY CONTENT { identifier-2} . . . . ' '

[ON EXCEPTION imperative-statement-1)

[NOT ON EXCEPTION imperative-statement-2)

[END-CALL]

CANCEL {identifier-1} litera1-1

CLOSE ffH•-o•mo-1 [ {:;;;} '"""'""]] } IHTH {NO REIHcW} LOCK

CLOSE {fi1e-name-1 [WITH LOCK)} ...

COMPUTE {identifier-1 [ROUNDED)} ... arithmetic-expression-1

[ON SIZE ERROR imperative-statement-1)

[NOT ON SIZE ERROR imperative-statement-2)

[END-CONFUTE]

CONTINUE

DELETE fi1e-name-1 RECORD

[INVALID KEY imperative-statement-1]

[~ INVALID KEY imperative-statement-2)

[END-DELETE)

{INPUT [TERMINAL]}

DISABLE l=Q TERMINAL . OUTPUT

cd-name-1 [ WITH KEY {identifier-1}] -- literal-1

260 COBOL 85 Programming

{identifier-1l litera1-1 f

GENERAL FORMAT FOR COBOL VERBS

[UPON mnemonic-name-1] [\.JITH NO ADVANCI:-lG]

{identifier-1} DIVIDE 1itera1_1 ETO {identifier-2 [ROU01DED]; oo o

[0~ SIZE ERROR imperative-statement-1]

(~OT ON SIZE ERROR imperative-statement-2]

[E::D-DIVIDE]

{identifier-11 ~ INTO

litera1-1 f {identifier-2} litera1-2

GIVING i identifier-3 (ROU01DED]' .. o

[ON SIZE ERROR imperative-staternent-1]

[::or ON SIZE ERROR imperative-statement-2]

(DID-DIVIDE]

{ identifier-1} DIVIDE 1itera1-1 ~ {identifier-2}

literal-2

GIVI::iG ( identifier-3 [RQU::iD[D]:

[ON SIZE ERROR imperative-statement-1]

(NOT ON SIZE ERROR imperative-statement-2]

[E::iD-DIVIDE]

{identifier-1} litera1-1

REMAINDER identifier-4

{ identifier-2} litera1-2

[ON SIZE ERROR imperative-statement-1]

[::iOT ON SIZE ERROR imperative-statement-2]

( E:-ID-DIVIDE]

GIVING identifier-3 [ROU~~ED]

Appendix A: COBOL 85 Language Formats 261

GENERAL FORMAT FOR COBOL VERBS

{ identifier-!} literal-1

{ identifier-2} literal-2 GIVING identifier-3 [ROUNDED]

REMAINPER identifier-4

[ON ~ ~ imperative-statement-!]

[NOT ON ~ ~ imperative-statement-2]

[END-DIVIDE]

{INPUT (TERHINAL]}

ENABLE I=Q TERMINAL OUTPUT

cd-name-1 [wiTH KEY

ENTER language-name-! [routine-name-!].

}A:>Y condl.tlon-1 TRCE

[·"" lidentifier-2l] literal-2 expression-2 ••• TRUE FALSE

{ identifier-!}] literal-!

~ {

FALSE

[:Nl] ) {~~~:~~i:~r-J } [{THROUGH} ( arithmetic-express ion-1 THRU

{identifier-4 )]}'} li teral-4 \ ari thmetic-expression-2 J

[~

condition-2 IR.lLl; fA.IIT

FALSE identifier-S

[:>OT] literal-S { {.ri thmetic-expression-3}

imperative-statement-!} ...

[\.JHE~ OTHER imperative-statement-2 J

[ EeiD- EVALUATE J

[: Ull\Qllllli} {identifier-6 }] }J ]· · ·} · · · {I!!!\!! ari thme t ic-exoress ion-~ H U literal-6

262 COBOL 85 Programming

GENERAL FORMAT FOR COBOL VERBS

GENERATE {da ta-name-1 } report-name-1

GO TO [procedure-name-1]

gQ TO (procedure-name-1) ... DEPENDING ON identifier-1

. . {(statement-1 ) .. ·} {ELSE {statement-2) ... [END-IF]} lE cond1t1on-1 THEN NEXT SENTENCE ELSE NEXT SENTENCE

--- E~~-IF

INITIALIZE (identifier-1) ...

!!ALPHABETIC J ALPHANU!-!ERIC NU!-!ERIC ALPHANUMERIC-EDITED NU!-!ERIC-EDITED

DATA BY {identifier-2) ~ ] litera1-1 ff · · ·

INITIATE (report-name-1) ...

I:!SPECT identifi.er-L T_~~'I:\C.

INSPECT identif ier-l REPLACI;;G

( {identifier-5l [{BEFORE'} {'identifier-4}] } CHARACTERS ]!X literal-) f ;\FTER J~ITIAL literal-2 , ''

{\ALL I \{identifier-)}. , {identifier-S} [J ~}- J~:JTIAL {identifi~r-~(] ·ILEADI~G~· I literal-1 lil literdl-3 tAFTER llterJ.l-- f

FIRST

1 I ... j )

l ' .. (· ... ~

Appendix A: COBOL 85 Language Formats 263

GENERAL FORMAT FOR COBOL VERBS

INSPECT id~ntiiicr-1 TAI.LYl~G

ide~tHicr-:! FOR ) ).M:!.t.! ht(>r,,]-_ J l ( QWW;IW [' BI:FQRE} I~ITI,\L { i~<·nt if l~r-4\] .••

- }{MJ, d{i~entificr-3\ [JBt:fORt:} INITIAl. {identtrler-4\] •.• 1 { I,.F.,YHNG( f iiteral-1 _( )l!.IT.t.R. litcr.11-2 ( (

REPLACING

l .. J .. ... }

( CIIARACTF.RS BY {l~entifler-~( [JBEFtlRF.( I~ITI.U. {ldontlfler-4}] .•. ~· ' - literal-) f f,\rTER f litcral-2

} j;Yt\DING/ IJidentlfler-J} BY {-l~entifh-r-5( [{BF.fORE} INITIAl. {i~•·nt lfier-4}'] ... / ...... ( )£.l.RSJ 1 flliter:al-1 - lat~..·r.11-3 ( AfTf.R lah•raJ-:! (

INSPECT identifier-! CONVERTING {identifier-6} literal-4

[{BEFORE} INITIAL l AFTER {identifier-4}] literal-2

IQ. {identifier-7} literal-S

{ {ASCENDING } . MERGE file-name-1 ON DESCENDING KEY {data-name-1} ... } ...

(COLLATING SEOUENCE IS dlphabet-name-1)

~ file-name-2 {file-name-3} ...

s~ PROCEDURE IS procedure-name-! [{i~=~UGH} procedure-name-2]{

t~ (file-name-4) ... S

{identifier-!} ~ literal-! IQ {identifier-2} ...

HQY& {~ESPONDING} identifier-! IQ idcntificr-2

{ identifier-!} MULTIPLY literal-! ID:. {identificr-2 [~)} ...

[ON SIZE ERROR imperative-statement-!]

(NOT o:; SIZE ERROR il:lperativc-statemcnt-2]

264 COBOL 85 Programming

GENERAL FORMAT FOR COBOL VERBS

MULTIPLY { identifier-1} H1 litera1-1

{ identifier-2} litera1-2

GIVING {identifier-3 [ROUNDED]} o o o

[ON SIZE ERROR irnperative-staternent-1]

[NOT ON SIZE ERROR irnperative-staternent-2]

[END-MULTIPLY]

S OPEN

PI OPEN

{

{ 0 [REVERSED J } INPUT h1e-narne-1 WITH NQ REWIND o o o

OUTPUT {file-narne-2 [WITH NO REWIND]} o o o

I-0 {fi1e-narne-3} ooo

EXTEND {fi1e-narne-4}

{INPUT {file-narne-1} o o o }

0 0 0 OUTPUT {fi1e-narne-2} 000

I-0 {file-narne-3} oo o

EXTEND {fi1e-narne-4} oo 0

} ..

{ OUTPUT {file-narne-1 [WITH NO REWIND)} o o o }

~l OPEN EXTEND { file-name-2} . . . . ..

.E.!illiQill:! [procedure-narne-1 [{~:~~UGH} procedure-narne-2 J J [irnperative-staternent-1 END-PERFO&~J

PERFORH ~rocedure-narne-1 [{;:~~UGH} procedure-name-2] J {~dentifier- 1} TIHES [irnperative-statement-1 END-PERFORH] ~nteger-1

PERFORH [procedure-narne-1 [{~:UUGH} procedure-narne-2 J J [ WITH TEST {BEFORE}] UNTIL condition-1 -- AFTER

[imperative-staternent-1 END-PERFORM]

[wiTH

Appendix A: COBOL 85 Language Formats 265

GENERAL FORMAT FQR COBOL VERBS

[procedure-name-1

TEST {BEFORE}] -- AFTER

{ identifier-2} index-name-1

[{~~~gUGH} procedure-name-2] J

jidentifier-3} FROM lindex-name-2

~litera1-1

{, identifier-4} BY 1itera1_2 UNTIL condition-1

[ { .d .f. 5} {identifier-6} AFTER ~.entl 1=~r- FROM index-name-4

ltera 1itera1-3

BY {11·~enti1fie4r-7} UNTIL condition-2] - 1tera- --

[imperative-statement-1 END-PERFORM]

~ cd-name-1

SRI READ fi1e-name-1 [NEXT] RECORD [INTO identifier-1]

[AT END imperative-statement-1]

[NQI AT END imperative-statement-2]

[END-READ]

R READ fi1e-name-1 RECORD [INTO identifier-1]

[INVALID KEY imperative-statement-3]

[NQI INVALID KEY imperative-statement-4]

[END-READ]

266 COBOL 85 Programming

GENERAL FORMAT FOR COBOL VERBS

I READ file-name-1 RECORD (INTO identifier-!)

[K&X IS data-name-1]

[INVALID KEY imperative-statement-3)

(NOT INVALID KEY imperative-statement-4)

(END-REAP)

{MESSAGE} RECEIVE cd-name-1 SEGMENT INTO identifier-!

[NO DATA imperative-statement-!)

[WITH DATA imperative-statement-2)

[END-RECEIVE)

RELEASE record-name-1 [FROM identifier-!]

RETURN file-name-1 RECORn (INTO identifier-!)

AT END imperative-statement-!

[NQI AT END imperative-statement-2)

[END-RETURN)

S RH.'RITE record-name-1 [FROM identifier-!]

RI REWRITE record-name-1 [FROM identifier-!)

[INVALID KEY imperative-statement-1)

[NOT It\VALID KEY imperative-statement-2-)

[ EN!l- REI.TR ITE]

Appendix A: COBOL 85 Language Formats 267

GENERAL FORMAT FOR COBOL VERBS

SEARCH identifier-! [ VARYING {~dentifier-2 }] 1ndex-name-l

(AT END imperative-statement-!)

WHEN condition-! NEXT SENTENCE ... { { imperative-statement-2}}

(END-SEARCH)

SEARCH ALL identifier-! [AT END imperative-statement-!)

{d 1 { IS EQUAL TO}

ata-name-WHEN IS =

condit1on-name-l

[ { {IS ml1.lll,

data-name-2 IS =

Allil condition-name-2

{ imperative-statement-2} NEXT SENTENCE

(END-SEARCH]

SEND cd-name-1 FROM identifier-!

S.fND cd-name-1 [FRO~! identifier-!]

{identifier-3 }} literal-! arithmetic-expression-!

{identifier-4 }l] literal-2 ari thmetic-expression-2 ...

{WITH i dent if ie r- 2} WITH lli WITH EN! IHTH EGI

[ I{identifier-3} [LINE J}] { BEFORE} ADVA~CING integer-1 LINES

AFTER ' . } --- {mncmonic-name-1

PAGE

[REPLACING L1 NE]

{ index-nnme-1}. identifier-}

{index-n.1me-2}

TO identifier-2 integer-] .

268 COBOL 85 Programming

GENERAL FORMAT FOR COBOL VERBS

SET {index-name-3} ••.

5]1 {{mnemonic-name-1}

{ UP .llY } DOWN !!¥ {identifier- 3}

integer-2

IQ {~}}

5]1 {condition-name-!} ..•

. { {ASCENDING } SORT f1le-name-l ON DESCENDING KEY { da ta-name-1} . . . } .•.

[IHTH DUPLICATES IN ORDER]

[COLLATING SEQUENCE IS alphabet-name-!]

~ I~PUT PROCEDURE IS procedure-name-!

{USING {file-name-2} ...

PROCEDURE IS procedure-name-)

{file-name-3} ...

START file-name-1 K&Y

IS EQUAL TO IS IS GREATER THAN IS > IS NOT LESS THAN IS NOT <

p<oo•d"<e-Mm•-2 J} THRU procedure-name-4 [{TI!RQ!1Qi} J l

data-name-1

IS GREATER THAN OR EQUAL TO IS >=

[l~VALID KEY imperative-statement-!]

[NOT INVALID KEY imperative-statement-2]

(E~D-START]

STOP {Ili!Ji } -·- literal-1

Appendix A: COBOL 85 Language Formats 269

GENERAL FORMAT FOR COBOL VERBS

{{identifier-!} literal-1

DELIMITED BY literal-2 ... {identifier-2}}

SIZE

INTO identifier-3

[WITH ~ identifier-4]

[ON OVERfLOW imperative-statement-!]

[Iilli ON OVERFLOW imperative·-statement-2]

[END-STRING]

SUBTRACT {identifier-!} literal-1

FROM {identifier-3 [ROUNDED]} ...

[ON SIZE ERROR imperative-statement-!]

[NOT ON SIZE ERROR imperative-statement-2]

(END-SUBTRACT]

SJ.lllTRACT {i~entifier-1} ll. teral-1

FRml {identifier-2} -- literal-2

GIVING {identifier-3 [ROUNDED]} ...

[ON SIZE ERROR imperative-statement-!]

[NQI ON SIZE ERROR imperative-statement-2]

(END-SUBTRACT]

SUBTRACT {CORRESPONDING} identifier-! FRON identifier-2 [ROUNDED] CORR

[ON ~ ~imperative-statement-!]

[~OT ON SIZE ERROR imperative-statement-2)

St:PI'RESS I'RilWING

TER!·:lt\ATE {rcpL>rt-n;~mc-1) ...

270 COBOL 85 Programming

GENERAL FORMAT FOR COBOL VERBS

UNSTRING identifier-!

[DELIMITED BY (~] {identifier-2} literal-1 [oR (ALL] {i~entifier-3}] ···]

hteral-2

INTO {identifier-4 [DELIMITER IN identifier-S] [COUNT IN identifier-&])

[WITH POINTER identifier-7]

(TALLYING IN identifier-S]

[ON OVERFLOW imperative-statement-!]

[NOT ON OVERFLOW imperative-statement-2]

[END-UNSTRING]

SRI USE [GLOBAL] AFTER STANDARD {EXCEPTION} -- -- ERROR f

{ file-name-1} INPUT

PROCEDURE ON OUTPUT l=Q EXTEND

W USE AFTER STANDARD EXCEPTION PROCEDURE ON OUTPUT { } {{file-name-1} ···}

ERROR EXTEND

~ [GLOBAL] BEFORE REPORTING identifier-!

[

cd-name-1 l [A11 REFERENCES OF] identifier-!

~ FOR DEBUGGING ON file-name-1 procedure-name-! ALL PROCEDURES

.. l

Appendix A: COBOL 85 Language Formats 271

GENERAL FORMAT FOR COBOL VERBS

S WRITE record-name-1 [FROM identifier-!]

[{BEFORE} ADVANCING AFTER

{{identifier-2} fLINE ] JJ integer-1 lLINES

{ mnemonic-name-!} PAGE

r. {END-OF-PAGE} ] lAT EQf imperative-statement-!

[~oT AT {~-OF-PAGE} imperative-statement-2]

[END-WRITE)

RI WRITE record-name-! [FROM identifier-!)

[INVALID KEY imperative-statement-!)

[NOT INVALID KEY imperative-statement-2)

[ END-1-'RITE)

272 COBOL 85 Programming

GENERAL FORMAT FOR COPY AND REPLACE STATEMENTS

COPY text-name-1 [{ ~} library-name-1]

[ {l==pseudo-text-1==} REPLACING i~entifier-1 BY

1lteral-1 --word-1

{:~~~~~~~~~~;t- 2==; l· .. ] li teral-2 word-2

REPLACE {==pseudo-text-1== BY ==pseudo-text-2==} ...

Appendix A: COBOL 85 Language Formats 273

RELATION CONDITION:

{identifier-! } literal-1 arithmetic-expression-! index-name-1

CLASS CONDITION:

GENERAL FORMAT FOR CONDITIONS

IS (HQ.T) ~ THAN IS (HQ.T) > IS (NQl'] ~ THAN IS (NOT) < IS (HQJ) EQUAL TO IS (NOT) • IS GREATER THAN Q.!\ EQUAL TO IS >• IS LESS THAN Q.!\ EQUAL TO IS <=

[NUMERIC } ALPHABETIC

identifier-! IS (NOT) ALPHABETIC-LOWER ALPHABETIC-UPPER class-name-1

CONDITION-NA}~ CONDITION:

condition-name-!

SWITCH-STATUS CONDITION:

condition-name-!

SIGN CONDITION:

{POSITIVE} arithmetic-expression-! IS [NOT) 'tNEGATIVE

ZERO

NEGATED CONDITION:

NOT condition-1

lidentifier-2 l literal-2 arithmetic-expression-2 index-name-2

274 COBOL 85 Programming

GENERAL FORMAT FOR CONDITIONS

COMBINED CONDITION:

condition-1 {{ :0} condition-2 } •••

ABBREVIATED COMBINED RELATION CONDITION:

relation-condition {{:0} [NQT) [relational-operator] object} •.•

Appendix A: COBOL 85 Language Formats 275

GENERAL FORMAT FOR QUALIFICATION

FORMAT 1:

{ data-name-1 } condition-name-!

FORMAT 2:

data-name-2}

{ file-name-1} cd-name-1

paragraph-name-! { ~} section-name-!

FORMAT 3:

text-name-1 {~;} library-name-!

FORMAT 4:

LINAGE-COUNIER { ~~} file-name-2

FORMAT 5:

{ PAGE-COUNTER} {IN} LINE-COUNTER OF report-name-!

FORMAT 6:

. . . [{IN..} {file-name-l}ll { 01: od-Mmo-1 j J

data-name-3 } {~n data-name-4 [{~~} report-name-2] {

u~n report-name-2 '

276 COBOL 85 Programming

SUBSCRIPTING:

{ condition-name-!} data-name-!

MISCELLANEOUS FORMATS

{integer-! }

( data-name-2 [{±} integer-2) ... ) index-name-1 [{±} integer-3)

REFERENCE MODIFICATION:

data-name-1 (leftmost-character-position: [length))

IDENTIFIER:

data-name-1 [{~} data-name-2] ..• [gn {~~~:~~=~!-! }] - - report-name-1

[ ({subscript} ... ) ) [(leftmost-character-position: [length)))

Appendix A: COBOL 85 Language Formats 277

GENERAL FORMAT FOR NESTED SOURCE PROGRAMS

IDENTIFICATION DIVISION.

PROGBAM-ID. program-name-1 (IS INITIAL PROGRAM].

[ENVIRONMENT DIVISION. environment-division-content]

(DATA DIVISION. data-division-content]

[PROCEDURE DIVISION. procedure-division-content)

([nested-source-program] ...

END PROGRAM program-name-1.]

GENERAL FORMAT FOR NESTED-SOURCE-PROGRAM

IDENTIFICATION DIVISION.

PROGRNM-ID. program-name-2 [IS {I CO~Il-ION I} PROGRMt] INITIAL

[ENVIRO~~ENT DIVISION. environment-division-content]

(DATA DIVISION. data-division-content]

(PROCEDURE DIVISION. procedure-division-content]

[nested-source-program] ...

END PROGRAM program-name-2.

278 COBOL 85 Programming

GENERAL FORMAT FOR A SEQUENCE OF SOURCE PROGRAMS

{IDENTIFICATION DIVISION.

PROGRAM-ID. program-name-) [IS INITIAL PROGRAM].

[ENVIRONMENT DIVISION. environment-division-content]

[~DIVISION. data-division-content]

[PROCEDURE DIVISION. procedure-division-content]

[nested-source-program] ...

IDiJ2 ~ program-name-).}

IDENTIFICATION DIVISION.

PROGRI\M-=ID. program-name-4 [IS INITIAL PROGRAM].

[ENVIRONMENT piVISlON. environment-division-content]

[DATA DIVISIQN. data-division-content]

[PROCEDURE DIVISIQN. procedure•division-content]

[[nested-source-program] •••

END PROGRAM program-name-4.]

Appendix B: COBOL 85 ReservedWords

ACCEPT ACCESS ADD ADVANCING AFTER ALL ALPHABET ALPHABETIC ALPHABETIC-LOWER ALPHABETIC-UPPER ALPHANUMERIC ALPHANUMERIC-EDITED ALSO ALTER ALTERNATE AND ANY ARE AREA AREAS ASCENDING ASSIGN AT AUTHOR

BEFORE BINARY BLANK BLOCK BOTTOM BY

CALL CANCEL

CD CF CH CHARACTER CHARACTERS CLASS CLOCK-UNITS CLOSE COBOL CODE CODE-SET COLLATING COLUMN COMMA COMMON COMMUNICATION COMP COMPUTATIONAL COMPUTE CONFIGURATION CONTAINS CONTENT CONTINUE CONTROL CONTROLS CONVERTING COPY CORR CORRESPONDING COUNT CURRENCY

DATA DATE

279

280 COBOL 85 Programming

DATE-COMPILED DATE-WRITTEN DAY DAY-OF-WEEK DE DEBUG-CONTENTS DEBUG-ITEM DEBUG-LINE DEBUG-NAME DEBUG-SUB-1 DEBUG-SUB-2 DEBUG-SUB-3 DEBUGGING DECIMAL-POINT DECLARATIVES DELETE DELIMITED DELIMITER DEPENDING DESCENDING DESTINATION DETAIL DISABLE DISPLAY DIVIDE DIVISION DOWN DUPLICATES DYNAMIC

EGI ELSE EMI ENABLE END END-ADD END-CALL END-COMPUTE END-DELETE END-DIVIDE END-EVALUATE END-IF

END-MULTIPLY END-OF-PAGE END-PERFORM END-READ END-RECEIVE END-RETURN END-REWRITE END-SEARCH END-START END-STRING END-SUBTRACT END-UNSTRING END-WRITE ENTER ENVIRONMENT EOP EQUAL ERROR ESI EVALUATE EVERY EXCEPTION EXIT EXTEND EXTERNAL

FALSE FD FILE FILE-CONTROL FILLER FINAL FIRST FOOTING FOR FROM

GENERATE GIVING GOBAL GO GREATER GROUP

280

Appendix B: COBOL 85 Reserved Words 281

HEADING LOW-VALUE HIGH-VALUE LOW-VALUES HIGH-VALUES

MEMORY I-0 MERGE I-0-CONTROL MESSAGE IDENTIFICATION MODE IF MODULES IN MOVE INDEX MULTIPLE INDEXED MULTIPLY INDICATE INITIAL NATIVE INITIALIZE NEGATIVE INITIATE NEXT INPUT NO INPUT-OUTPUT NOT INSPECT NUMBER INSTALLATION NUMERIC INTO NUMERIC-EDITED INVALID IS OBJECT-COMPUTER

OCCURS JUST OF JUSTIFIED OFF

OMITTED KEY ON

OPEN LABEL OPTIONAL LAST OR LEADING ORDER LEFT ORGANIZATION LENGTH OTHER LESS OUTPUT LIMIT OVERFLOW LIMITS LINAGE PACKED-DECIMAL LINAGE-COUNTER PADDING LINE PAGE LINE-COUNTER PAGE-COUNTER LINES PERFORM LINKAGE PF LOCK PH

282 COBOL 85 Programming

PIC PICTURE PLUS POINTER POSITION POSITIVE PRINTING PROCEDURE PROCEDURES PROCEED PROGRAM PROGRAM-ID PURGE

QUEUE QUOTE QUOTES

RANDOM RD READ RECEIVE RECORD RECORDS REDEFINES REEL REFERENCE REFERENCES RELATIVE RELEASE REMAINDER REMOVAL RENAMES REPLACE REPLACING REPORT REPORTING REPORTS RERUN RESERVE RESET RETURN REVERSED

REWIND REWRITE RF RH RIGHT ROUNDED RUN

SAME SD SEARCH SECTION SECURITY SEGMENT SEGMENT-LIMIT SELECT SEND SENTENCE SEPARATE SEQUENCE SEQUENTIAL SET SIGN SIZE SORT SORT-MERGE SOURCE SOURCE-COMPUTER SPACE SPACES SPECIAL-NAMES STANDARD STANDARD-1 STANDARD-2 START STATUS STOP STRING SUB-QUEUE-1 SUB-QUEUE-2 SUB-QUEUE-3 SUBTRACT SUM

Appendix B: COBOL 85 Reserved Words 283

SUPPRESS USAGE SYMBOLYC USE SYNC USING SYNCHRONIZED

VALUE TABLE VALUES TALLYING VARYING TAPE TERMINAL WHEN TERMINATE WITH TEST WORDS TEXT WORKING-STORAGE THAN WRITE THEN THROUGH ZERO THRU ZEROES TIME ZEROS TIMES TO + TOP TRAILING * TRUE I TYPE **

> UNIT < UNSTRING UNTIL >= UP <= UPON

Appendix C: Character Sets (ASCII and EBCDIC)

Character code ASCII symbol EBCDIC symbol (decimal)

0 nul nul 1 soh soh 2 stx stx 3 etx etx 4 eot 5 enq ht 6 ack 7 bel del 8 bs vt 9 ht

10 nl 11 vt 12 ff ff 13 cr cr 14 so so 15 si si 16 dle dle 17 del del 18 dc2 dc2 19 dc3 dc3 20 dc4 21 nak nl 22 syn bs 23 etb 24 can can 25 em em 26 sub 27 esc 28 fs fs 29 gs gs 30 rs rs

284

Appendix C: Character Sets (ASCll and EBCDIC) 285

Character code ASCll symbol EBCDIC symbol (decimal)

31 us us 32 sp 33 34 35 £

36 $ 37 % lf 38 & etb 39 esc 40 41 42 * 43 + 44 45 enq 46 eck 47 I bel 48 0 49 1 50 2 syn 51 3 52 4 53 5 54 6 55 7 eot 56 8 57 9 58 59 60 < dc4 61 nak 62 > 63 ? sub 64 @ sp 65 A

66 B

67 c 68 D

69 E

70 F

record record

record

record

record

record

record

record

record

record

record

record

record

record

record

286 COBOL 85 Programming

Character code ASCII symbol EBCDIC symbol (decimal)

71 G 72 H 73 I 74 J 75 K 76 L < 77 M 78 N + 79 0 80 p &

81 Q

82 R

83 s 84 T 85 u 86 v 87 w 88 X 89 y

90 z l 91 [ $ 92 \ * 93 l 94 95 96 97 I 98 a 99 b

100 c 101 d 102 e 103 f 104 g 105 h 106 i 107 j 108 k % 109 1 > 110 m ?

record

record

record

record

record

record

record

Appendix C: Character Sets (ASCll and EBCDIC) 287

Character code ASCll symbol EBCDIC symbol (decimal)

111 n 112 0

113 p 114 q 115 r

116 s 117 t 118 u 119 v 120 w

121 X

122 y £

123 z @

124 125 126 127 128 del 129 a 130 b 131 c 132 d 133 e 134 f

135 g 136 h 137 i

145 j 146 k

147 1 148 m 149 n 150 0

151 p 152 q 153 r

record

record record

record

record

record

288 COBOL 85 Programming

Character code (decimal)

162 163 164 165 166 167 168 169

193 194 195 196 197 198 199 200 201

209 210 211 212 213 214 215 216 217

226 227 228 229 230 231 232 233

ASCII symbol EBCDIC symbol

s t u

v

w

X

y

z

A

B

c D

E

F

G

H

I

J

K

L

M

N

0 p

Q

R

s T

u v w X y

z

Character code (decimal)

240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255

Appendix C: Character Sets (ASCII and EBCDIC) 289

ASCII symbol EBCDIC symbol

0 1 2 3 4 5 6 7 8 9

Index

ACCEPT 20, 57, 258 ACCESS MODE 185 ADD 21, 24,258 ADVANCING 23 ADVANCING n LINES 182 ADVANCING PAGE 183 AFTER 120 ALTERNATE RECORD KEY 202 AND96 Area A 7 Area B 7 Arithmetic operators 51 ASCENDING KEY 207,214 AT END 133

BINARY 55

CALL 221, 258 CLOSE 165, 259 Collating sequence 77, 210 Compilation 10 COMPUTATIONAL 56 COMPUTE 50, 259 Condition variables 99 Constants 22 CONTROL FOOTING 236 CONTROL HEADING 237 CONTROLS 235 CONVERTING 148 COPY 151,272 Currency symbol(£$) 56

Data description 251 DATA DIVISION 6, 16, 246 Data item description 17 Data validation 94 DATE 57 DAY 57 DAY-OF-WEEK 57 Debugging !OJ DELETE 189, 201, 259

DELIMITED BY 140 DESCENDING KEY 207, 204 DETAIL LINE 236 DISPLAY 21, 23, 56, 260 DIVIDE 47, 260 DUPLICATES 203 DYNAMIC 185, 195

ELSE 61 END-OF-PAGE 184 Entering a program 9 ENVIRONMENT DIVISION 6, 13, 241 EVALUATE 70,261 Execution 10 EXIT 94,262 EXIT PROGRAM 221, 262 EXTEND 166

File access 160 File definition 161 File error handling 171 File organization !59 File processing 161 File status 161, 186 Floating pictures 55 Fractional numbers 33

GENERATE 238 GIVING 27, 207, 214 GOT069

IDENTIFICATION DIVISION 6, 12,240 IF 60 Indicator area 7 INDEXED 56 INDEXED BY 119 Indexed file 244, 249 Indexed files 195

291

file attributes 195 OPENing and CLOSEing 197 adding a record 198

292 Index

updating a record 199 deleting a record 201 retrieving a record 202 invalid keys 203

Index names ll9 INITIATE 238, 262 INPUT 166 INPUT PROCEDURE 210, 214 INSPECT 145, 262 INVALID KEY 193 I-0 166

LINKAGE SECTION 223 Lists 105 Lists of lists 116 Literals 22 Logical operators 96 Look up tables 130 Looping 82

MERGE 213, 263 MERGE FILE 244, 250 MOVE 29, 36, 263 MULTIPLY 46, 263

Nested IF 64 Nested performs 118 Nested programs 219, 277 NEXT RECORD 192 NEXT SENTENCE 66 NOT 63,96

OCCURS 106 ON OVERFLOW 142 ON SIZE ERROR 77 OPEN 165, 264 OR96 OUTPUT 166 OUTPUT PROCEDURE 210, 214

PACKED-DECIMAL 56 PAGE FOOTING 237 PAGE HEADING 235 PERFORM 80, 264 PERFORM paragraphs 92 PERFORM procedure structure 99 PERFORM n TIMES 82, 264 PERFORM THRU (THROUGH) 93, 264 PERFORM UNTIL 85,265 PERFORM VARYING 87,265 PIC 17 PIC P 34

PIC S 37 PIC V 33 PIC Z 54 PIC. 34 PIC+ 38 PIC- 38 PROCEDURE DIVISION 6, 19,257

RANDOM 195 READ 169, 265 Record definition 164 RECORD KEY 197 Relational operators 63 RELATIVE KEY 185 Relative file 248 Relative files 185

adding a record 188 deleting a record 189 file attributes 185 invalid keys 193 OPENing and CLOSEing 187 retrieving 192 updating a record 189

REMAINDER 4 7 REPLACE 154,272 REPLACING 147, 153 REPORT FILE 245, 250 REPORT SECTION 235 REPORT FOOTING 237 REPORT HEADING 237 Report Writer 231

the report 231 Environment Division 233 Data Division 234 Procedure Division 237

REWRITE 175,266 ROUNDED42

SEARCH 119, 132, 267 Sequence number area 6 SEQUENTIAL FILE 247 Sequential file processing 173

printing a file 180 record insertion 177 record update 175 searching 17 3

SET 119, 267 Signed numbers 37 SIZE-ERROR 43 SORT 205, 268 SORT FILE 244, 250 Sorting 113

Sorting tables 127 SPECIAL-NAMES 24 START 193, 268 STOP 21, 268 STRING 140,269 Structure diagrams 8 SUBTRACT 39, 269 SUPPRESS 238, 269 SYSLIST 24, 234 Syntax format 24

Table definition 122 Tables 122 Table searching 123 TALLYING I 145 TERMINATE 238,269 TEST AFTER 87 TEST BEFORE 87 Testing 11

TIME 57 TYPE 235

UNSTRING 143, 270 UPON 23 USAGE IS 55

Index 293

USE BEFORE REPORTING 238 USING 207, 214 USING BY CONTENT 227 USING BY REFERENCE 223

VALUE86

WITH DEBUGGING MODE 155 WITH POINTER 142 WHEN 71, 133 WRITE 166, 271 Writing a COBOl; program 9

Zero suppression 54