77
The following acknowledgment has been reproduced from COBOL Edition, U.S. De- partment of Defense, at the request of the Conference on Data Systems Languages. “Any organization interested in reproducing the COBOL report and specifications in whole or in part, using ideas taken from this report as the basis for an instruction manual or for any other purpose is free to do so. However, all such organizations are requested to reproduce this section as part of the introduction to the document. Those using a short passage, as in a book review, are requested to mention ‘COBOL’ in acknowledgment of the source, but need not quote this entire section. “COBOL is an industry language and is not the property of any company or group of companies, or of any organization or group of organizations. “No warranty, expressed or implied, is made by any contributor or by the COBOL Committee as to the accuracy and functioning of the programming system and lan- guage. Moreover, no responsibility is assumed by any contributor or by the committee, in connection therewith. “Procedures have been established for the maintenance of COBOL. Inquiries con- cerning the procedures for proposing changes should be directed to the Executive Com- mittee of the Conference on Data Systems Languages. “The authors and copyright holders of the copyrighted material used herein FLOW-MATIC (Trademark of Sperry Rand Corporation), Programming for the Uni- vac (R) I and II, Data Automation Systems copyrighted 1958, 1959, by Sperry Rand Corporation; IBM Commercial Translator Form No. F28-8013, copyrighted 1959 by IBM; FACT, DSI 27A5260-2760, copyrighted 1960 by Minneapolis-Honeywell have specifically authorized the use of this material in whole or in part, in the COBOL specifications. Such authorization extends to the reproduction and use of COBOL spec- ifications in programming manuals or similar publications.”

The following acknowledgment has been reproduced from COBOL

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: The following acknowledgment has been reproduced from COBOL

The following acknowledgment has been reproduced from COBOL Edition, U.S. De-partment of Defense, at the request of the Conference on Data Systems Languages.

“Any organization interested in reproducing the COBOL report and specificationsin whole or in part, using ideas taken from this report as the basis for an instructionmanual or for any other purpose is free to do so. However, all such organizations arerequested to reproduce this section as part of the introduction to the document. Thoseusing a short passage, as in a book review, are requested to mention ‘COBOL’ inacknowledgment of the source, but need not quote this entire section.

“COBOL is an industry language and is not the property of any company or groupof companies, or of any organization or group of organizations.

“No warranty, expressed or implied, is made by any contributor or by the COBOLCommittee as to the accuracy and functioning of the programming system and lan-guage. Moreover, no responsibility is assumed by any contributor or by the committee,in connection therewith.

“Procedures have been established for the maintenance of COBOL. Inquiries con-cerning the procedures for proposing changes should be directed to the Executive Com-mittee of the Conference on Data Systems Languages.

“The authors and copyright holders of the copyrighted material used herein

FLOW-MATIC (Trademark of Sperry Rand Corporation), Programming for the Uni-vac (R) I and II, Data Automation Systems copyrighted 1958, 1959, by Sperry RandCorporation; IBM Commercial Translator Form No. F28-8013, copyrighted 1959 byIBM; FACT, DSI 27A5260-2760, copyrighted 1960 by Minneapolis-Honeywell

have specifically authorized the use of this material in whole or in part, in the COBOLspecifications. Such authorization extends to the reproduction and use of COBOL spec-ifications in programming manuals or similar publications.”

Page 2: The following acknowledgment has been reproduced from COBOL

IBM is a registered trademark ofInternational Business Machines Corp.

VAX is a registered trademark ofDigital Equipment Corp.

CONTENTS

I. COBOL Character Set 1

II. COBOL Reserved Words 2

III. Complete COBOL Language Formats 12

General Format for IDENTIFICATION DIVISION 13

General Format for ENVIRONMENT DIVISION 13

General Format for DATA DIVISION 20

General Format for PROCEDURE DIVISION 35

IV. Function Names Available in Extensions to COBOL 85 74

V. New COBOL 9X Reserved Words 75

Page 3: The following acknowledgment has been reproduced from COBOL

1

COBOL SyntaxReference Guide

I. COBOL Character Set

The following lists are in ascending order:

EBCDIC ASCIIspace space

. period, decimal point ” quotation mark< less than $ dollar sign( left parenthesis ’ single quotation mark+ plus symbol ( left parenthesis$ dollar sign ) right parenthesis

Page 4: The following acknowledgment has been reproduced from COBOL

∗ asterisk, multiplication ∗ asterisk, multiplication) right parenthesis + plus symbol; semicolon , comma- hyphen, minus sign - hyphen, minus sign/ slash, division . period, decimal point, comma / slash, division> greater than 0–9 digits’ single quotation mark ; semicolon= equal sign < less than” quotation mark = equal sign

a–z lowercase letters > greater thanA–Z uppercase letters A–Z uppercase letters0–9 digits a–z lowercase letters

II. COBOL Reserved Words

Each COBOL compiler has a list of reserved words that:

1. Includes all entries in the ANS COBOL standard.2. Includes additional entries not part of the standard but that are either

VAX or IBM compiler extensions. These are called enhancements.

The following is based on the 1974 and 1985 American National Standard.You may find that your computer has additional reserved words. Diagnosticmessages will print if you are using a reserved word incorrectly.

2

Page 5: The following acknowledgment has been reproduced from COBOL

3

New reserved words that are not relevant for COBOL 74, but are relevantonly for COBOL 85, are denoted with a single asterisk (∗). COBOL 74 reservedwords that are not reserved in the new standard are denoted with a doubleasterisk (∗∗). Words in red are VAX COBOL 85 extensions. Words in blue areIBM COBOL 85 extensions. Boxed words are both VAX and IBM COBOL 85extensions.

ACCEPT CHARACTERSACCESS CLASS ∗ACTUAL CLOCK-UNITSADD CLOSEADVANCING COBOLAFTER CODEALL CODE-SETALLOWING COLLATINGALPHABET ∗ COLUMNALPHABETIC COM-REGALPHABETIC-LOWER ∗ COMMA

ALPHABETIC-UPPER ∗ COMMITALPHANUMERIC ∗ COMMONALPHANUMERIC-EDITED ∗ COMMUNICATIONALSO COMP

ALTER COMP-1

ALTERNATE COMP-2

AND COMP-3

ANY ∗ COMP-4APPLY COMP-5ARE COMP-6AREA COMPUTATIONAL

Page 6: The following acknowledgment has been reproduced from COBOL

AREAS COMPUTATIONAL-1

ASCENDING COMPUTATIONAL-2

ASSIGN COMPUTATIONAL-3

AT COMPUTATIONAL-4AUTHOR COMPUTATIONAL-5AUTOTERMINATE COMPUTATIONAL-6

COMPUTEBASIS CONCURRENTBATCH CONFIGURATION

BEFORE CONNECT

BEGINNING CONSOLEBELL CONTAINBINARY ∗ CONTAINS

BIT CONTENT ∗BITS CONTINUE ∗BLANK CONTROLBLINKING CONTROLSBLOCK CONVERSIONBOLD CONVERTING ∗BOOLEAN COPYBOTTOM CORE-INDEXBY CORR

CORRESPONDINGCALL COUNTCANCEL CURRENCYCBL CURRENTCD CURRENT-DATECFCH DATACHARACTER DATE

4

Page 7: The following acknowledgment has been reproduced from COBOL

5

DATE-COMPILED ECHODATE-WRITTEN EGCSDAY EGIDAY-OF-WEEK ∗ EJECTDB ELSEDB-ACCESS-CONTROL-KEY EMIDB-CONDITION EMPTYDB-CURRENT-RECORD-ID ENABLEDB-CURRENT-RECORD-NAME ENDDB-EXCEPTION END-ACCEPTDBKEY END-ADD ∗DB-KEY END-CALL ∗DB-RECORD-NAME END-COMMITDB-SET-NAME END-COMPUTE ∗DB-STATUS END-CONNECTDEBUG-SUB END-DELETE ∗DB-UWA END-DISCONNECTDE END-DIVIDE ∗DEBUG-CONTENTS END-ERASEDEBUG-ITEM END-EVALUATE ∗DEBUG-LENGTH END-FETCHDEBUG-LINE END-FINDDEBUG-NAME END-FINISHDEBUG-NUMERIC-CONTENTS END-FREEDEBUG-SIZE END-GETDEBUG-START END-IF ∗DEBUG-SUB ENDINGDEBUG-SUB-1 END-KEEPDEBUG-SUB-2 END-MODIFYDEBUG-SUB-3 END-MULTIPLY ∗

Page 8: The following acknowledgment has been reproduced from COBOL

DEBUG-SUB-ITEM END-OF-PAGEDEBUG-SUB-N END-PERFORM ∗DEBUG-SUM-NUM END-READ ∗DEBUGGING END-READYDECIMAL-POINT END-RECEIVE ∗DECLARATIVES END-RECONNECTDEFAULT END-RETURN ∗DELETE END-REWRITE ∗DELIMITED END-ROLLBACKDELIMITER END-SEARCH ∗DEPENDING END-START ∗DESCENDING END-STOREDESCRIPTOR END-STRING ∗DESTINATION END-SUBTRACT ∗DETAIL END-UNSTRING ∗DICTIONARY END-WRITE ∗DISABLE ENTERDISCONNECT ENTRYDISP ENVIRONMENTDISPLAY EOPDISPLAY-1 EQUALDISPLAY-6 EQUALSDISPLAY-7 ERASEDISPLAY-9 ERRORDIVIDE ESIDIVISION EVALUATE ∗DOES EVERY ∗∗DOWN EXCEEDSDUPLICATE EXCEPTIONDUPLICATES EXCLUSIVEDYNAMIC EXIT

6

Page 9: The following acknowledgment has been reproduced from COBOL

7

EXOR KEEPEXTEND KEYEXTERNAL ∗

LABELFAILURE LASTFALSE ∗ LDFD LEADINGFETCH LEAVEFILE LEFTFILE-CONTROL LENGTHFILE-LIMIT LESSFILE-LIMITS LIMITFILLER LIMITSFINAL LINAGEFIND LINAGE-COUNTERFINISH LINEFIRST LINE-COUNTERFOOTING LINESFOR LINKAGEFREE LOCALLYFROM LOCK

LOW-VALUEGENERATE LOW-VALUESGETGIVING MATCHGLOBAL ∗ MATCHESGO MEMBERGOBACK MEMBERSHIPGREATER MEMORY ∗∗GROUP MERGE

Page 10: The following acknowledgment has been reproduced from COBOL

HEADING MESSAGEHIGH-VALUE MODEHIGH-VALUES MODIFY

MODULES ∗∗ID MORE-LABELSIDENTIFICATION MOVEIF MULTIPLEIN MULTIPLYINCLUDINGINDEX NATIVEINDEXED NEGATIVEINDICATE NEXTINITIAL NOINITIALIZE ∗ NOMINALINITIATE NON-NULLINPUT NONEINPUT-OUTPUT NOTINSERT NOTE

INSPECT NULLINSTALLATION NULLSINTO NUMBERINVALID NUMERICI-O NUMERIC-EDITEDI-O-CONTROLIS OBJECT-COMPUTER

OCCURSJUST OFJUSTIFIED OFF

OFFSETKANJI OMITTED

8

Page 11: The following acknowledgment has been reproduced from COBOL

9

ON REFERENCE-MODIFIERONLY REFERENCESOPEN REGARDLESSOPTIONAL RELATIVEOR RELEASEORDER ∗ RELOADORGANIZATION REMAINDEROTHER ∗ REMOVALOTHERS RENAMESOUTPUT REPLACE ∗OVERFLOW REPLACINGOWNER REPORT

REPORTINGPACKED-DECIMAL ∗ REPORTSPADDING ∗ REREADPAGE RERUNPAGE-COUNTER RESERVEPARAGRAPH RESETPASSWORD RETAININGPERFORM RETRIEVALPF RETURNPH RETURN-CODEPIC REVERSEDPICTURE REWINDPLUS REWRITEPOINTER RFPOSITION RHPOSITIVE RIGHTPRESENT RMS-FILENAMEPRINTING RMS-STS

Page 12: The following acknowledgment has been reproduced from COBOL

PRIOR RMS-STVPROCEDURE ROLLBACKPROCEDURES ROUNDEDPROCEED RUNPROGRAMPROGRAM-ID SAMEPROTECTED SCREENPURGE ∗ SD

SEARCHQUEUE SECTIONQUOTE SECURITYQUOTES SEGMENT

SEGMENT-LIMITRANDOM SELECTRD SENDREAD SENTENCEREADERS SEPARATE

READY SEQUENCEREALM SEQUENCE-NUMBERREALMS SEQUENTIALRECEIVE SERVICERECONNECT SETRECORD SETSRECORD-NAME SHIFT-INRECORD-OVERFLOW SHIFT-OUTRECORDING SIGNRECORDS SIZEREDEFINES SKIP-1REEL SKIP-2REFERENCE ∗ SKIP-3

10

Page 13: The following acknowledgment has been reproduced from COBOL

11

SORT TOPSORT-CONTROL TRAILINGSORT-CORE-SIZE TRUE ∗SORT-FILE-SIZE TYPESORT-MERGESORT-MESSAGE UNDERLINEDSORT-MODE-SIZE UNEQUALSORT-RETURN UNITSOURCE UNLOCKSOURCE-COMPUTER UNSTRINGSPACE UNTILSPACES UPSPECIAL-NAMES UPDATESTANDARD UPDATERSSTANDARD-1 UPONSTANDARD-2 ∗ USAGESTART USAGE-MODESTATUS USESTOP USINGSTORESTRING VALUESUB-QUEUE-1 VALUESSUB-QUEUE-2 VARYINGSUB-QUEUE-3SUB-SCHEMA WAITSUBTRACT WHENSUCCESS WHEN-COMPILEDSUM WHERESUPPRESS WITHSYMBOLIC WITHINSYNC WORDS ∗∗

Page 14: The following acknowledgment has been reproduced from COBOL

SYNCHRONIZED WORKING-STORAGEWRITE

TABLE WRITE-ONLYTALLY WRITERSTALLYINGTAPE ZEROTENANT ZEROESTERMINAL ZEROSTERMINATETEST +TEXT -THAN ∗THEN ∗ /THROUGH ∗∗THRU >TIME <TIME-OF-DAY =TIMES >= ∗TITLE <= ∗TO

III. Complete COBOL Language Formats

This guide contains the composite language formats of the American NationalStandard COBOL. Shaded entries are those that are applicable to COBOL 85only. Entries in blue are IBM extensions. Entries in red are VAX extensions.Entries with an ∗ are both IBM and VAX extensions.

12

Page 15: The following acknowledgment has been reproduced from COBOL

13

General Format for IDENTIFICATION DIVISION{IDENTIFICATION DIVISION.ID DIVISION.

}PROGRAM-ID. program-name

[IS

{∣∣∣∣COMMONINITIAL

∣∣∣∣} PROGRAM

].

[AUTHOR. [comment-entry] . . . ][INSTALLATION. [comment-entry] . . . ][DATE-WRITTEN. [comment-entry] . . . ][DATE-COMPILED. [comment-entry] . . . ][SECURITY. [comment-entry] . . . ]

General Format for ENVIRONMENT DIVISION∗

[ENVIRONMENT DIVISION.[CONFIGURATION SECTION.[SOURCE-COMPUTER. [computer-name [WITH DEBUGGING MODE].]][OBJECT-COMPUTER. [computer-name

[PROGRAM COLLATING SEQUENCE IS alphabet-name-1][SEGMENT-LIMIT IS segment-number].] ]

Page 16: The following acknowledgment has been reproduced from COBOL

[SPECIAL-NAMES. [[implementor-name-1IS mnemonic-name-1 [ON STATUS IS condition-name-1 [OFF STATUS IS condition-name-2]]IS mnemonic-name-2 [OFF STATUS IS condition-name-2 [ON STATUS IS condition-name-1]]ON STATUS IS condition-name-1 [OFF STATUS IS condition-name-2]OFF STATUS IS condition-name-2 [ON STATUS IS condition-name-1]

. . .

[ALPHABET alphabet-name-1 IS{ASCIIEBCDIC/

}

STANDARD-1STANDARD-2NATIVEimplementor-name-2literal-1

{THROUGHTHRU

}literal-2

{ALSO literal-3} . . .

. . .

. . .

[SYMBOLIC CHARACTERS

{{{symbolic-character-1} . . .

{ISARE

}{integer-1} . . .

}. . .

∗The ENVIRONMENT DIVISION, CONFIGURATION SECTION, and INPUT-OUTPUTSECTION entries are required for COBOL 74.

14

Page 17: The following acknowledgment has been reproduced from COBOL

15

[IN alphabet-name-2]

}]. . .[

CLASS class-name IS

{literal-4

[{THROUGHTHRU

}literal-5

]}. . .]

. . .

[CURRENCY SIGN IS literal-6][DECIMAL-POINT IS COMMA].] ]][INPUT-OUTPUT SECTION.FILE-CONTROL.

{file-control-entry} . . .[I-O-CONTROL.[[

SAME

[RECORDSORTSORT-MERGE

]AREA FOR file-name-1 {file-name-2} . . .

]. . .

[MULTIPLE FILE TAPE CONTAINS{file-name-3 [POSITION integer-1]} . . . ] . . . .]]] ]

General Format for FILE-CONTROL Entry

SEQUENTIAL FILESELECT [OPTIONAL ] file-name-1

Page 18: The following acknowledgment has been reproduced from COBOL

ASSIGN TO{

implementor-name-1literal-l

}. . .[

RESERVE integer-1[AREAAREAS

]][[ORGANIZATION IS] SEQUENTIAL][BLOCK CONTAINS [smallest-block TO] blocksize

{RECORDSCHARACTERS

}][CODE-SET IS alpha-name][PADDING CHARACTER IS

{data-name-1literal-2

}][RECORD DELIMITER IS

{STANDARD-1implementor-name-2

}][ACCESS MODE IS SEQUENTIAL][FILE STATUS IS data-name-2].

RELATIVE FILESELECT [OPTIONAL ] file-name-l

ASSIGN TO{implementor-name-1

literal-l

}. . .[

RESERVE integer-1[AREAAREAS

]]

16

Page 19: The following acknowledgment has been reproduced from COBOL

17

[ORGANIZATION IS] RELATIVE[BLOCK CONTAINS [smallest-block TO] blocksize

{RECORDSCHARACTERS

}][PASSWORD IS data-name]ACCESS MODE IS

SEQUENTIAL [RELATIVE KEY IS data-name-1]{RANDOMDYNAMIC

}RELATIVE KEY IS data-name-1

[FILE STATUS IS data-name-2].

INDEXED FILESELECT [OPTIONAL ] file-name-1

ASSIGN TO{

implementor-name-1literal-1

}. . .[

RESERVE integer-1[AREAAREAS

]][ORGANIZATION IS] INDEXED[BLOCK CONTAINS [smallest-block TO] blocksize

{RECORDSCHARACTERS

}][PASSWORD IS data-name]

Page 20: The following acknowledgment has been reproduced from COBOL

[ACCESS MODE IS

{SEQUENTIALRANDOMDYNAMIC

}]

RECORD KEY IS data-name-1[ALTERNATE RECORD KEY IS data-name-2 [WITH DUPLICATES]] . . .[FILE STATUS IS data-name-3].

SORT OR MERGE FILE

SELECT file-name-1 ASSIGN TO{

implementor-name-1literal-1

}. . . .

REPORT FILESELECT [OPTIONAL ] file-name-1

ASSIGN TO{

implementor-name-1literal-1

}. . .[

RESERVE integer-1[AREAAREAS

]][ [ORGANIZATION IS] SEQUENTIAL][BLOCK CONTAINS [smallest-block TO] blocksize

{RECORDSCHARACTERS

}][CODE-SET IS alpha-name]

18

Page 21: The following acknowledgment has been reproduced from COBOL

19

[PADDING CHARACTER IS

{data-name-1literal-1

}][RECORD DELIMITER IS

{STANDARD-1implementor-name-2

}][ACCESS MODE IS SEQUENTIAL][FILE STATUS IS data-name-2].

General Format—I-O-CONTROL

[I-O-CONTROL.

APPLY

∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣

DEFERRED-WRITEEXTENSION extend-amtFILL-SIZELOCK-HOLDINGMASS-INSERT[

CONTIGUOUSCONTIGUOUS-BEST-TRY

]PREALLOCATION preall-amt

PRINT-CONTROLWINDOW window-pointers

∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣

ON {file-name} . . .

. . .

Page 22: The following acknowledgment has been reproduced from COBOL

[; RERUN

[ON

{file-name-1implementor-name

}]

EVERY

[END OF]

{REELUNIT

}integer-1 RECORDS

OF file-name-2

integer-2 CLOCK-UNITScondition-name

. . .

[; SAME

[RECORDSORTSORT-MERGE

]AREA FOR file-name-3 {, file-name-4} . . .

]. . .

[ ; MULTIPLE FILE TAPE CONTAINS file-name-5 [POSITION integer-3]

[ , file-name-6 [POSITION integer-4]] . . . ] . . . ]].

General Format for DATA DIVISION

[DATA DIVISION.[SUB-SCHEMA SECTION. [subschema-entry [keeplist-entry] . . . ]][FILE SECTION.[file-description-entry{record-description-entry} . . . ] . . .[sort-merge-file-description-entry{record-description-entry} . . . ] . . .[report-file-description-entry] . . . ]

20

Page 23: The following acknowledgment has been reproduced from COBOL

21

[WORKING-STORAGE SECTION.[77-level-description-entryrecord-description-entry

]. . .]

[LINKAGE SECTION.[77-level-description-entryrecord-description-entry

]. . .]

[COMMUNICATION SECTION.[communication-description-entry[record-description-entry] . . . ] . . . ][REPORT SECTION.[report-description-entry{report-group-description-entry} . . . ] . . . ]]

General Format—Subschema Description

DB subschema-name WITHIN schema-name

[FOR database-name]

[{THRUTHROUGH

}stream-name

]

General Format—Keeplist Description

LD keeplist-name [LIMIT IS integer].

Page 24: The following acknowledgment has been reproduced from COBOL

General Format for File Description Entry

SEQUENTIAL FILEFD file-name-1

[IS EXTERNAL][IS GLOBAL][BLOCK CONTAINS [integer-1 TO] integer-2

{RECORDSCHARACTERS

}]RECORD

CONTAINS integer-3 CHARACTERSIS VARYING IN SIZE [ [FROM integer-4] [TO integer-5] CHARACTERS]

[DEPENDING ON data-name-1]CONTAINS integer-6 TO integer-7 CHARACTERS

[LABEL

{RECORD ISRECORDS ARE

} {STANDARDOMITTED

}][VALUE OF

{implementor-name-1 IS

{data-name-2literal-1

}}. . .]

[DATA

{RECORD ISRECORDS ARE

}{data-name-3} . . .

][LINAGE IS

{data-name-4integer-8

}LINES

[WITH FOOTING AT

{data-name-5integer-9

}][LINES AT TOP

{data-name-6integer-10

}][LINES AT BOTTOM

{data-name-7integer-11

}]]

22

Page 25: The following acknowledgment has been reproduced from COBOL

23

[CODE-SET IS alphabet-name-1].[[ACCESS MODE IS] SEQUENTIAL][FILE STATUS IS file-status].

RELATIVE FILEFD file-name-1

[IS EXTERNAL][IS GLOBAL][BLOCK CONTAINS [integer-1 TO] integer-2

{RECORDSCHARACTERS

}]RECORD

CONTAINS integer-3 CHARACTERSIS VARYING IN SIZE [[FROM integer-4][TO integer-5] CHARACTERS]

[DEPENDING ON data-name-1]CONTAINS integer-6 TO integer-7 CHARACTERS

[LABEL

{RECORD ISRECORDS ARE

} {STANDARDOMITTED

}][VALUE OF

{implementor-name-1 IS

{data-name-2literal-1

}}. . .]

[DATA

{RECORD ISRECORDS ARE

}{data-name-3} . . .

].[ACCESS MODE IS]

SEQUENTIAL [RELATIVE KEY IS rel-key]{RANDOMDYNAMIC

}RELATIVE KEY IS rel-key

Page 26: The following acknowledgment has been reproduced from COBOL

[FILE STATUS IS file-status]

INDEXED FILEFD file-name-1

[IS EXTERNAL][IS GLOBAL][BLOCK CONTAINS [integer-1 TO] integer-2

{RECORDSCHARACTERS

}]RECORD

CONTAINS integer-3 CHARACTERSIS VARYING IN SIZE [ [FROM integer-4][TO integer-5] CHARACTERS]

[DEPENDING ON data-name-1]CONTAINS integer-6 TO integer-7 CHARACTERS

[LABEL

{RECORD ISRECORDS ARE

} {STANDARDOMITTED

}][VALUE OF

{implementor-name-1 IS

{data-name-2literal-1

}}. . .]

[DATA

{RECORD ISRECORDS ARE

}(data-name-3) .. .

].[

[ACCESS MODE IS]{SEQUENTIALRANDOMDYNAMIC

}]RECORD KEY IS rec-key

[ALTERNATE RECORD KEY IS alt-key [WITH DUPLICATES]] . . .[FILE STATUS IS file-status].

24

Page 27: The following acknowledgment has been reproduced from COBOL

25

SORT-MERGE FILESD file-name-1RECORD

CONTAINS integer-1 CHARACTERS

IS VARYING IN SIZE [[FROM integer-2] [TO integer-3] CHARACTERS][DEPENDING ON data-name-1]

CONTAINS integer-4 TO integer-5 CHARACTERS

[DATA

{RECORD ISRECORDS ARE

}{data-name-2} . . .

]REPORT FILEFD file-name-1

[IS EXTERNAL][IS GLOBAL][BLOCK CONTAINS [integer-1 TO] integer-2

{RECORDSCHARACTERS

}]RECORD

CONTAINS integer-3 CHARACTERSIS VARYING IN SIZE [[FROM integer-4][TO integer-5] CHARACTERS]

[DEPENDING ON data-name-1]CONTAINS integer-6 TO integer-7 CHARACTERS

[LABEL

{RECORD ISRECORDS ARE

} {STANDARDOMITTED

}][VALUE OF

{implementor-name-1 IS

{data-name-2literal-1

}}. . .]

Page 28: The following acknowledgment has been reproduced from COBOL

[[ACCESS MODE IS] SEQUENTIAL]

[CODE-SET IS alphabet-name-1]{REPORT ISREPORTS ARE

}{report-name-1} . . .

[FILE STATUS IS file-status].

General Format for Data Description Entry

FORMAT 1

level-number[data-name-1FILLER

][REDEFINES data-name-2]

[IS EXTERNAL][IS GLOBAL][{

PICTUREPIC

}IS character-string

]

26

Page 29: The following acknowledgment has been reproduced from COBOL

27

[USAGE IS]

BINARYCOMPUTATIONAL-1∗COMP-1∗COMPUTATIONAL-2∗COMP-2∗COMPUTATIONAL-3∗COMP-3∗DISPLAYDISPLAY-1∗INDEXPACKED-DECIMALPOINTER∗

[[SIGN IS]

{LEADINGTRAILING

}[SEPARATE CHARACTER]

]

OCCURS integer-2 TIMES[{ASCENDINGDESCENDING

}KEY IS {data-name-3} . . .

]. . .

[INDEXED BY {index-name-1} . . . ]OCCURS integer-1 TO integer-2 TIMES DEPENDING ON data-name-4[{

ASCENDINGDESCENDING

}KEY IS {data-name-3} . . .

]. . .

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

Page 30: The following acknowledgment has been reproduced from COBOL

[{SYNCHRONIZEDSYNC

} [LEFTRIGHT

]][{

JUSTIFIEDJUST

}RIGHT

][BLANK WHEN

{ZEROZEROESZEROS

}]VALUE IS

literal-1EXTERNAL external-nameREFERENCE data-nameNULLNULLS

.

FORMAT 2

66 data-name-1 RENAMES data-name-2[{

THROUGHTHRU

}data-name-3

].

28

Page 31: The following acknowledgment has been reproduced from COBOL

29

FORMAT 3

88 condition-name-1{VALUE ISVALUES ARE

}

literal-1EXTERNAL external-nameREFERENCE data-namelow-val

{THROUGHTHRU

}literal-2EXTERNAL external-nameREFERENCE data-namehigh-val

. . .

Page 32: The following acknowledgment has been reproduced from COBOL

General Format for Communication Description Entry

FORMAT 1CD cd-name-1

FOR [INITIAL] INPUT

[[SYMBOLIC QUEUE IS data-name-1][SYMBOLIC SUB-QUEUE-1 IS data-name-2][SYMBOLIC SUB-QUEUE-2 IS data-name-3][SYMBOLIC SUB-QUEUE-3 IS data-name-4][MESSAGE DATE IS data-name-5][MESSAGE TIME IS data-name-6][SYMBOLIC SOURCE IS data-name-7][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]

30

Page 33: The following acknowledgment has been reproduced from COBOL

31

FORMAT 2CD 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-5].

FORMAT 3CD cd-name-1

FOR [INITIAL] I-O

[[MESSAGE DATE IS data-name-1][MESSAGE TIME IS data-name-2][SYMBOLIC TERMINAL IS data-name-3][TEXT LENGTH IS data-name-4][END KEY IS data-name-5][STATUS KEY IS data-name-6] ]

[data-name-1, data-name-2, data-name-3,data-name-4, data-name-5, data-name-6]

General Format for Report Description Entry

RD report-name-1[IS GLOBAL][CODE literal-1]

Page 34: The following acknowledgment has been reproduced from COBOL

[{CONTROL ISCONTROLS ARE

} {{data-name-1} . . .FINAL[data-name-1] . . .

}][PAGE

[LIMIT ISLIMITS ARE

]integer-1

[LINELINES

][HEADING integer-2]

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

[FOOTING integer-5]].

General Format for Report Group Description Entry

FORMAT 101 [data-name-1][

LINE NUMBER IS

{integer-1 [ON NEXT PAGE]PLUS integer-2

}]NEXT GROUP IS

integer-3PLUS integer-4NEXT PAGE

32

Page 35: The following acknowledgment has been reproduced from COBOL

33

TYPE IS

{REPORT HEADINGRH

}{PAGE HEADINGPH

}{CONTROL HEADINGCH

} {data-name-2FINAL

}{DETAILDE

}{CONTROL FOOTINGCF

} {data-name-3FINAL

}{PAGE FOOTINGPF

}{REPORT FOOTINGRF

}

[[USAGE IS] DISPLAY ].

FORMAT 2level-number [data-name-1][

LINE NUMBER IS

{integer-1 [ON NEXT PAGE]PLUS integer-2

}][[USAGE IS] DISPLAY ].

Page 36: The following acknowledgment has been reproduced from COBOL

FORMAT 3level-number [data-name-1]{

PICTUREPIC

}IS character-string

[[USAGE IS] DISPLAY ][[SIGN IS]

{LEADINGTRAILING

}SEPARATE CHARACTER

][ {

JUSTIFIEDJUST

}RIGHT

][BLANK WHEN ZERO][LINE NUMBER IS

{integer-1 [ON NEXT PAGE]PLUS integer-2

}][COLUMN NUMBER IS integer-3]SOURCE IS identifier-1VALUE IS literal-1{SUM {identifier-2} . . . [UPON {data-name-2} . . . ]} . . .[

RESET ON

{data-name-3FINAL

}]

[GROUP INDICATE ].

34

Page 37: The following acknowledgment has been reproduced from COBOL

35

General Format for PROCEDURE DIVISION

FORMAT 1[PROCEDURE DIVISION [USING {data-name-1} . . . ] [GIVING identifier-1].[DECLARATIVES.{section-name SECTION [segment-number].

USE statement.[paragraph-name.

[sentence] . . . ] . . . } . . .END DECLARATIVES.]{section-name SECTION [segment-number].[paragraph-name.

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

FORMAT 2[PROCEDURE DIVISION [USING {data-name-1} . . . ] [GIVING identifier-1].{paragraph-name.

[sentence] . . . } . . . ]

General Format for COBOL Verbs

ACCEPT identifier-1 [FROM mnemonic-name-1][AT END imperative statement-1][NOT AT END imperative statement-2][END-ACCEPT]

Page 38: The following acknowledgment has been reproduced from COBOL

ACCEPT identifier-2 FROM

DATEDAYDAY-OF-WEEKTIME

ACCEPT dest-item

∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣

FROM LINE NUMBER

line-numline-id [PLUS [plus-num] ]PLUS [plus-num]

FROM COLUMN NUMBER

column-numcolumn-id [PLUS [plus-num] ]PLUS [plus-num]

ERASE [TO END OF]

{SCREENLINE

}WITH BELLUNDERLINEDBOLDWITH BLINKING

PROTECTED

∣∣∣∣∣∣∣∣∣SIZE

{prot-size-litprot-size-item

}WITH AUTOTERMINATEWITH NO BLANKWITH FILLER prot-fill-lit

∣∣∣∣∣∣∣∣∣

WITH CONVERSIONREVERSEDWITH NO ECHO

DEFAULT IS

def-src-litdef-src-itemCURRENT VALUE

CONTROL KEY IN key-dest-item

∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣

36

Page 39: The following acknowledgment has been reproduced from COBOL

37

∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣

[ [p ] ]PLUS [plus-num]

ERASE [TO END OF]

{SCREENLINE

}WITH BELLUNDERLINEDBOLDWITH BLINKING

PROTECTED

∣∣∣∣∣∣∣∣∣SIZE

{prot-size-litprot-size-item

}WITH AUTOTERMINATEWITH NO BLANKWITH FILLER prot-fill-lit

∣∣∣∣∣∣∣∣∣

WITH CONVERSIONREVERSEDWITH NO ECHO

DEFAULT IS

def-src-litdef-src-itemCURRENT VALUE

CONTROL KEY IN key-dest-item

∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣

[{[ON EXCEPTION stment] [NOT ON EXCEPTION stment2][AT END stment] [NOT AT END stment2]

}][END-ACCEPT]

ACCEPT CONTROL KEY IN key-dest-item

∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣

FROM LINE NUMBER

line-numline-id [PLUS [plus-num] ]PLUS [plus-num]

FROM COLUMN NUMBER

column-numcolumn-id [PLUS [plus-num] ]PLUS [plus-num]

ERASE [TO END OF]

{SCREENLINE

}WITH BELL

∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣

[{[ON EXCEPTION stment] [NOT ON EXCEPTION stment2][AT END stment] [NOT AT END stment2]

}]

Page 40: The following acknowledgment has been reproduced from COBOL

[END-ACCEPT]ACCEPT cd-name-1 MESSAGE COUNT

ADD{

identifier-1literal-1

}. . . TO {identifier-2 [ROUNDED]} . . .

[ON SIZE ERROR imperative-statement-1]

[NOT ON SIZE ERROR imperative-statement-2][END-ADD ]

ADD{

identifier-1literal-1

}. . . TO

{identifier-2literal-2

}GIVING {identifier-3 [ROUNDED]} . . .[ON SIZE ERROR imperative-statement-1]

[NOT ON SIZE ERROR imperative-statement-2][END-ADD]

ADD

{CORRESPONDINGCORR

}identifier-1 TO identifier-2 [ROUNDED ]

[ON SIZE ERROR imperative-statement-1]

[NOT ON SIZE ERROR imperative-statement-2][END-ADD]

ALTER {procedure-name-1 TO [PROCEED TO] procedure-name-2} . . .

CALL{

identifier-1literal-1

} [USING

{[BY REFERENCE] {identifier-2} . . .BY CONTENT {identifier-2} . . .

}. . .

]

38

Page 41: The following acknowledgment has been reproduced from COBOL

39[ON OVERFLOW imperative-statement-1 [END-CALL ]

]

CALL{

identifier-1literal-1

}

USING

[BY REFERENCEADDRESS OF

]{identifier-2} . . .{

ADDRESS OFLENGTH OF

}BY CONTENTBY DESCRIPTOR

BY VALUE OMITTED

. . .

BY REFERENCEBY CONTENTBY DESCRIPTORBY VALUE

{identifier-2} . . .

OMITTED

. . .

[ON EXCEPTION imperative-statement-1][NOT ON EXCEPTION imperative-statement-2]

[ON OVERFLOW imperative statement][NOT ON OVERFLOW imperative statement]

[END-CALL ]

CANCEL{

identifier-1literal-1

}. . .

Page 42: The following acknowledgment has been reproduced from COBOL

SW CLOSE

file-name-1

{REELUNIT

}[FOR REMOVAL]

WITH

{NO REWINDLOCK

} . . .

RI CLOSE {file-name-1 [WITH LOCK]} . . .

COMMIT [RETAINING ][ON ERROR stment][NOT ON ERROR stment2][END-COMMIT]

COMPUTE {identifier-1 [ROUNDED ]} . . .{=EQUAL

}arithmetic-expression-1

[ON SIZE ERROR imperative-statement-1]

[NOT ON SIZE ERROR imperative-statement-2][END-COMPUTE]

CONNECT [record-name] TO

{{set-name} . . .ALL

}RETAINING

∣∣∣∣∣∣∣

REALMRECORD{SET [set-name] . . .{set-name} . . .

}∣∣∣∣∣∣∣ CURRENCY

[ON ERROR stment] [NOT ON ERROR stment2][END-CONNECT]

40

Page 43: The following acknowledgment has been reproduced from COBOL

41

CONTINUEDELETE file-name-1 RECORD

[INVALID KEY imperative-statement-1]

[NOT INVALID KEY imperative-statement-2][END-DELETE]

DISABLE

INPUT [TERMINAL ]I-O TERMINALOUTPUT

cd-name-1

DISCONNECT [record-name] FROM

{{set-name} . . .ALL

}[ON ERROR stment][NOT ON ERROR stment2][END-DISCONNECT ]

DISPLAY{identifier-1

literal-1

}. . . [UPON

{CONSOLESYSOUTmnemonic-name-1]

}[WITH NO ADVANCING ]

Page 44: The following acknowledgment has been reproduced from COBOL

DISPLAY {src-item

∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣

AT LINE NUMBERline-numline-id [PLUS [plus-num]]PLUS [plus-num]

AT COLUMN NUMBER

column-numcolumn-id [PLUS [plus-num] ]PLUS [plus-num]

ERASE [TO END OF]

{SCREENLINE

}WITH BELLUNDERLINEDBOLDWITH BLINKINGREVERSEDWITH CONVERSION

∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣

} . . .

[WITH NO ADVANCING ]

DIVIDE{

identifier-1literal-1

}INTO

{identifier-2literal-2

}GIVING identifier-3 [ROUNDED]

REMAINDER identifier-4[ON SIZE ERROR imperative-statement-1]

42

Page 45: The following acknowledgment has been reproduced from COBOL

43

[NOT ON SIZE ERROR imperative-statement-2][END-DIVIDE]

DIVIDE{

identifier-1literal-1

}BY

{identifier-2literal-2

}GIVING identifier-3 [ROUNDED]

REMAINDER identifier-4[ON SIZE ERROR imperative-statement-1]

[NOT ON SIZE ERROR imperative-statement-2][END-DIVIDE]

DIVIDE{

identifier-1literal-1

}INTO {identifier-2 [ROUNDED ]} . . .

[ON SIZE ERROR imperative-statement-1]

[NOT ON SIZE ERROR imperative-statement-2][END-DIVIDE]

DIVIDE{identifier-1

literal-1

}INTO

{identifier-2literal-2

}GIVING {identifier-3 [ROUNDED]} . . .[ON SIZE ERROR imperative-statement-1]

[NOT ON SIZE ERROR imperative-statement-2][END-DIVIDE]

DIVIDE{

identifier-1literal-1

}BY

{identifier-2literal-2

}GIVING {identifier-3 [ROUNDED]} . . .[ON SIZE ERROR imperative-statement-1]

Page 46: The following acknowledgment has been reproduced from COBOL

[NOT ON SIZE ERROR imperative-statement-2][END-DIVIDE]

ENABLE

INPUT [TERMINAL ]I-O TERMINALOUTPUT

cd-name-1

ENTRY literal USING identifier-1 .. .ERASE [ALL] [record-name]

[ON ERROR stment][NOT ON ERROR stment2][END-ERASE ]

EVALUATE

identifier-1literal-1expression-1TRUEFALSE

ALSO

identifier-2literal-2expression-2TRUEFALSE

. . .

{{WHEN

ANYcondition-1TRUEFALSE

[NOT]

identifier-3literal-3arithmetic-expression-1

{THROUGH

THRU

} identifier-4literal-4arithmetic-expression-2

44

Page 47: The following acknowledgment has been reproduced from COBOL

45

[ALSO

ANYcondition-2TRUEFALSE

[NOT]

identifier-5literal-5arithmetic-expression-3

{THROUGH

THRU

} identifier-6literal-6arithmetic-expression-4

. . .

. . .

imperative-statement-1} . . .[WHEN OTHER imperative-statement-2][END-EVALUATE]EXITEXIT PROGRAM

FETCH database-record[FOR UPDATE]RETAINING

∣∣∣∣∣∣∣REALMRECORD{SET [set-name] . . .{set-name} . . .

}∣∣∣∣∣∣∣ CURRENCY

[{

[AT END stment] [NOT AT END stment2][ON ERROR stment] [NOT ON ERROR stment2]

}][END-FETCH ]

Page 48: The following acknowledgment has been reproduced from COBOL

FIND database-record [FOR UPDATE] RETAINING

∣∣∣∣∣∣∣

REALMRECORD{SET [set-name] . . .{set-name} . . .

}∣∣∣∣∣∣∣ CURRENCY

[{

[AT END stment] [NOT AT END stment2][ON ERROR stment] [NOT ON ERROR stment2]

}][END-FIND]

FIND ALL keeplist-name [record-name][WITHIN

{realm-nameset-name

}][USING {rec-key} . . .WHERE {bool-expres}

][FOR UPDATE][{

[AT END stment] [NOT AT END stment2][ON ERROR stment] [NOT ON ERROR stment2]

}][END-FIND]

FREE

database-key-id

ALL

[{FROM {keeplist-name} . . .CURRENT

}] [ON ERROR stment][NOT ON ERROR stment2][END-FREE]

46

Page 49: The following acknowledgment has been reproduced from COBOL

47

GENERATE

{data-name-1report-name-1

}GET

[record-name{record-item} . . .

][ON ERROR stment][NOT ON ERROR stment2][END-GET]

[GOBACK]GO TO [procedure-name-1]GO TO {procedure-name-1} . . . DEPENDING ON identifier-1

IF condition-1 THEN

{{statement-1} . . .NEXT SENTENCE

} ELSE {statement-2} . . . [END-IF]ELSE NEXT SENTENCEEND-IF

INITIALIZE {identifier-1} . . .REPLACING

ALPHABETICALPHANUMERICNUMERICALPHANUMERIC-EDITEDNUMERIC-EDITEDBBCSEGCS

DATA BY

{identifier-2literal-1

}

. . .

Page 50: The following acknowledgment has been reproduced from COBOL

INITIATE {report-name-1} . . .INSPECT identifier-1 TALLYINGidentifier-2 FOR

CHARACTERS

[{BEFOREAFTER

}INITIAL

{identifier-4literal-2

}]. . .{

ALLLEADING

}{{identifier-3literal-1

} [{BEFOREAFTER

}INITIAL

{identifier-4literal-2

}]. . .}

. . .

. . .

. . .INSPECT identifier-1 REPLACINGCHARACTERS BY

{identifier-5literal-3

} [{BEFOREAFTER

}INITIAL

{identifier-4literal-2

}]. . .{ALL

LEADINGFIRST

}{{identifier-3literal-1

}BY

{identifier-5literal-3

} [{BEFOREAFTER

}INITIAL

{identifier-4literal-2

}]. . .}

. . .

. . .

INSPECT identifier-1 TALLYINGidentifier-2 FOR

CHARACTERS

[{BEFOREAFTER

}INITIAL

{identifier-4literal-2

}]. . .{

ALLLEADING

}{{identifier-3literal-1

} [{BEFOREAFTER

}INITIAL

{identifier-4literal-2

}]. . .}

. . .

. . .

. . .

48

Page 51: The following acknowledgment has been reproduced from COBOL

49

REPLACINGCHARACTERS BY

{identifier-5literal-3

} [{BEFOREAFTER

}INITIAL

{identifier-4literal-2

}]. . .{ALL

LEADINGFIRST

}{{identifier-3literal-1

}BY

{identifier-5literal-3

} [{BEFOREAFTER

}INITIAL

{identifier-4literal-2

}]. . .}

. . .

. . .

INSPECT identifier-1 CONVERTING{

identifier-6literal-4

}TO

{identifier-7literal-5

}[{

BEFOREAFTER

}INITIAL

{identifier-4literal-2

}]. . .

KEEP [database-key-id] USING destination-keeplist

[ON ERROR imperative statement-1][NOT ON ERROR imperative statement-2][END-KEEP ]

MERGE file-name-1{ON

{ASCENDINGDESCENDING

}KEY {data-name-1} . . .

}. . .

[COLLATING SEQUENCE IS alphabet-name-1]USING file-name-2 {file-name-3} . . .OUTPUT PROCEDURE IS procedure-name-1

[{THROUGHTHRU

}procedure-name-2

]GIVING {file-name-4} . . .

Page 52: The following acknowledgment has been reproduced from COBOL

MODIFY

[record-name{record-item} . . .

]RETAINING

∣∣∣∣∣∣∣REALMRECORD{SET [set-name] . . .{set-name} . . .

}∣∣∣∣∣∣∣ CURRENCY

[ON ERROR stment][NOT ON ERROR stment2][END-MODIFY]

MOVE{

identifier-1literal-1

}TO {identifier-2} . . .

MOVE

{CORRESPONDINGCORR

}identifier-1 TO identifier-2

MULTIPLY{

identifier-1literal-1

}BY {identifier-2 [ROUNDED]} . . .

[ON SIZE ERROR imperative-statement-1]

[NOT ON SIZE ERROR imperative-statement-2][END-MULTIPLY]

MULTIPLY{

identifier-1literal-1

}BY

{identifier-2literal-2

}

50

Page 53: The following acknowledgment has been reproduced from COBOL

51

GIVING {identifier-3 [ROUNDED]} . . .[ON SIZE ERROR imperative-statement-1]

[NOT ON SIZE ERROR imperative-statement-2][END-MULTIPLY]

S OPEN

INPUT {file-name-1 [WITH NO REWIND]} . . .OUTPUT {file-name-2 [WITH NO REWIND ]} . . .

. . .ALLOWING

NO OTHERS∣∣∣∣∣∣∣READERSWRITERSUPDATERSALL

∣∣∣∣∣∣∣

I-O {file-name-3} . . .EXTEND {file-name-4} . . .

RI OPEN

INPUT {file-name-1} . . .OUTPUT {file-name-2} . . .ALLOWING

NO OTHERS∣∣∣∣∣∣∣READERSWRITERSUPDATERSALL

∣∣∣∣∣∣∣

I-O {file-name-3} . . .EXTEND {file-name-4} . . .

Page 54: The following acknowledgment has been reproduced from COBOL

W OPEN

{OUTPUT {file-name-1 [WITH NO REWIND]} . . .EXTEND {file-name-2} . . .

}. . .

PERFORM

[procedure-name-1

[{THROUGHTHRU

}procedure-name-2

]][imperative-statement-1 END-PERFORM]

PERFORM

[procedure-name-1

[{THROUGHTHRU

}procedure-name-2

]]{

identifier-1integer-1

}TIMES [imperative-statement-1 END-PERFORM]

PERFORM

[procedure-name-1

[{THROUGHTHRU

}procedure-name-2

]][WITH TEST

{BEFOREAFTER

}]UNTIL condition-1

[imperative-statement-1 END-PERFORM]

PERFORM

[procedure-name-1

[{THROUGHTHRU

}procedure-name-2

]][WITH TEST

{BEFOREAFTER

}]VARYING

{identifier-2index-name-1

}FROM

{identifier-3index-name-2literal-1

}

52

Page 55: The following acknowledgment has been reproduced from COBOL

53

BY{

identifier-4literal-2

}UNTIL condition-1[

AFTER{

identifier-5index-name-3

}FROM

{identifier-6index-name-4literal-3

}BY

{identifier-7literal-4

}UNTIL condition-2

]. . .

[imperative-statement-1 END-PERFORM]

PURGE cd-name-1SRI READ file-name-1 [NEXT] RECORD [INTO identifier-1]

REGARDLESS OF LOCK

ALLOWING

{UPDATERSREADERSNO OTHERS

}[AT END imperative-statement-1][NOT AT END imperative-statement-2][END-READ ]

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

Page 56: The following acknowledgment has been reproduced from COBOL

REGARDLESS OF LOCK

ALLOWING

{UPDATERSREADERSNO OTHERS

}[INVALID KEY imperative-statement-3]

[NOT INVALID KEY imperative-statement-4][END-READ ]

I READ file-name-1 RECORD [INTO identifier-1][KEY IS data-name-1][INVALID KEY imperative-statement-3]

[NOT INVALID KEY imperative-statement-4][END-READ ]

READY [realm-name] . . .USAGE-MODE IS

CONCURRENTEXCLUSIVEPROTECTEDBATCH

[{

RETRIEVALUPDATE

}]{RETRIEVALUPDATE

} CONCURRENTEXCLUSIVEPROTECTEDBATCH

[WITH WAIT][ON ERROR imperative statement-1][NOT ON ERROR imperative statement-2][END-READY ]

54

Page 57: The following acknowledgment has been reproduced from COBOL

55

RECEIVE cd-name-1{MESSAGESEGMENT

}INTO identifier-1

[NO DATA imperative-statement-1]

[WITH DATA imperative-statement-2][END-RECEIVE]

RECONNECT [record-name] WITHIN

{{set-name} . . .ALL

}RETAINING

∣∣∣∣∣∣∣REALMRECORD{SET [set-name] . . .{set-name} . . .

}∣∣∣∣∣∣∣ CURRENCY

[ON ERROR stment][NOT ON ERROR stment2][END-RECONNECT]

RELEASE record-name-1 [FROM identifier-1]RETURN file-name-1 RECORD [INTO identifier-1]

AT END imperative-statement-1[NOT AT END imperative-statement-2][END-RETURN]

S REWRITE record-name-1 [FROM identifier-1]RI REWRITE record-name-1 [FROM identifier-1]

[ALLOWING NO OTHERS][INVALID KEY imperative-statement-1]

Page 58: The following acknowledgment has been reproduced from COBOL

[NOT INVALID KEY imperative-statement-2][END-REWRITE]

ROLLBACK[ON ERROR stment][NOT ON ERROR stment2][END-ROLLBACK]

SEARCH identifier-1[VARYING

{identifier-2index-name-1

}][AT END imperative-statement-1]{WHEN condition-1

{imperative-statement-2NEXT SENTENCE

}}. . .

[END-SEARCH]

SEARCH ALL identifier-1 [AT END imperative-statement-1]

WHEN

data-name-1{IS EQUAL TOIS =

} identifier-3literal-1arithmetic-expression-1

condition-name-1

AND

data-name-2{IS EQUAL TOIS =

} identifier-4literal-2arithmetic-expression-2

condition-name-2

. . .

56

Page 59: The following acknowledgment has been reproduced from COBOL

57{imperative-statement-2NEXT SENTENCE

}[END-SEARCH]

SEND cd-name-1 FROM identifier-1

SEND cd-name-1 [FROM identifier-1]

WITH identifier-2WITH ESIWITH EMIWITH EGI

{BEFOREAFTER

}ADVANCING

{

identifier-3integer-1

}[LINELINES

]{

mnemonic-name-1PAGE

}

[REPLACING LINE]

SET{

index-name-1identifier-1

}. . . TO

index-name-2identifier-2integer-1

SET {index-name-3} . . .

{UP BYDOWN BY

} {identifier-3integer-2

}SET

{{mnemonic-name-1} . . . TO

{ONOFF

}}. . .

Page 60: The following acknowledgment has been reproduced from COBOL

SET {condition-name-1} . . . TO TRUE

SET pointer-id TO REFERENCE OF identifier

SET status-code-id TO

{SUCCESSFAILURE

}

SET{

identifierADDRESS OF identifier

}TO

identifierADDRESS OF identifierNULLNULLS

SORT file-name-1

{ON

{ASCENDINGDESCENDING

}KEY {data-name-1} . . .

}. . .

[WITH DUPLICATES IN ORDER]

[COLLATING SEQUENCE IS alphabet-name-1]INPUT PROCEDURE IS procedure-name-1[{

THROUGHTHRU

}procedure-name-2

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

OUTPUT PROCEDURE IS procedure-name-3

[{THROUGHTHRU

}procedure-name-4

]GIVING {file-name-3} . . .

58

Page 61: The following acknowledgment has been reproduced from COBOL

59

START file-name-1

KEY

IS EQUAL TOIS =IS GREATER THANIS >IS NOT LESS THANIS NOT <IS GREATER THAN OR EQUAL TOIS >=

data-name-1

REGARDLESS OF LOCK

ALLOWING

{UPDATERSREADERSNO OTHERS

}[INVALID KEY imperative-statement-1]

[NOT INVALID KEY imperative-statement-2][END-START ]

STOP{RUNliteral-1

}STORE record-name [[NEXT TO] DBKEY] [WITHIN {realm-name} . . . ]RETAINING

∣∣∣∣∣∣∣REALMRECORD{SET [set-name] . . .{set-name} . . .

}∣∣∣∣∣∣∣ CURRENCY

Page 62: The following acknowledgment has been reproduced from COBOL

[ON ERROR stment][NOT ON ERROR stment2][END-STORE]

STRING

{identifier-1literal-1

}. . . DELIMITED BY

identifier-2literal-2SIZE

. . .

INTO identifier-3[WITH POINTER identifier-4][ON OVERFLOW imperative-statement-1]

[NOT ON OVERFLOW imperative-statement-2][END-STRING]

SUBTRACT{

identifier-1literal-1

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

[ON SIZE ERROR imperative-statement-1]

[NOT ON SIZE ERROR imperative-statement-2][END-SUBTRACT]

SUBTRACT{

identifier-1literal-1

}. . . FROM

{identifier-2literal-2

}GIVING {identifier-3 [ROUNDED]} . . .[ON SIZE ERROR imperative-statement-1]

[NOT ON SIZE ERROR imperative-statement-2][END-SUBTRACT]

60

Page 63: The following acknowledgment has been reproduced from COBOL

61

SUBTRACT

{CORRESPONDINGCORR

}identifier-1 FROM identifier-2 [ROUNDED ]

[ON SIZE ERROR imperative-statement-1]

[NOT ON SIZE ERROR imperative-statement-2][END-SUBTRACT]

SUPPRESS PRINTINGTERMINATE {report-name-1} . . .

UNLOCK file-name[RECORDALL RECORDS

]UNSTRING identifier-1[

DELIMITED BY [ALL]{

identifier-2literal-1

} [OR [ALL]

{identifier-3literal-2

}]. . .

]INTO {identifier-4 [DELIMITER IN identifier-5] [COUNT IN identifier-6]} . . .[WITH POINTER identifier-7][TALLYING IN identifier-8][ON OVERFLOW imperative-statement-1]

[NOT ON OVERFLOW imperative-statement-2][END-UNSTRING]

USE [GLOBAL] AFTER STANDARD

{EXCEPTIONERROR

}PROCEDURE ON

{file-name-1} . . .INPUTOUTPUTI-OEXTEND

Page 64: The following acknowledgment has been reproduced from COBOL

USE [GLOBAL] AFTER STANDARD

{BEGINNINGEND

}{FILEREELUNIT

}LABEL PROCEDURE ON

file-nameINPUTOUTPUTI-OEXTEND

USE [GLOBAL] BEFORE REPORTING identifier-1

USE FOR DEBUGGING ON

cd-name-1[ALL REFERENCES OF] identifier-1file-name-1procedure-name-1ALL PROCEDURES

. . .

USE [GLOBAL] FOR DB-EXCEPTION[ON

{{DBM$ exception-condition} . . .OTHER

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

[ALLOWING NO OTHERS]

62

Page 65: The following acknowledgment has been reproduced from COBOL

63

{BEFOREAFTER

}ADVANCING

{

identifier-2integer-1

} [LINELINES

]{

mnemonic-name-1PAGE

}

[AT

{END-OF-PAGEEOP

}imperative-statement-1

][NOT AT

{END-OF-PAGEEOP

}imperative-statement-2

][END-WRITE ]

RI WRITE record-name-1 [FROM identifier-1][ALLOWING NO OTHERS][INVALID KEY imperative-statement-1]

[NOT INVALID KEY imperative-statement-2][END-WRITE ]

General Format for Copy and Replace Statements

COPY text-name-1[{

OFIN

}library-name-1

]

Page 66: The following acknowledgment has been reproduced from COBOL

REPLACING

==pseudo-text-1==identifier-1literal-1word-1

BY

==pseudo-text-2==identifier-2literal-2word-2

. . .

COPY record-name FROM DICTIONARY

REPLACING

==pseudo-text-1==identifier-1literal-1word-1

BY

==pseudo-text-2==identifier-2literal-2word-2

. . .

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

64

Page 67: The following acknowledgment has been reproduced from COBOL

65

General Format for Conditions

RELATION CONDITION

identifier-1literal-1arithmetic-expression-1index-name-1

IS [NOT] GREATER THANIS [NOT] >IS [NOT] LESS THANIS [NOT] <IS [NOT] EQUAL TOIS [NOT] =IS GREATER THAN OR EQUAL TOIS >=IS LESS THAN OR EQUAL TOIS <=

identifier-2literal-2arithmetic-expression-2index-name-2

CLASS CONDITION

identifier-1 IS [NOT]

NUMERICALPHABETICALPHABETIC-LOWERALPHABETIC-UPPERclass-name

CONDITION-NAME CONDITIONcondition-name-1

Page 68: The following acknowledgment has been reproduced from COBOL

CURRENCY INDICATOR ACCESS

CURRENT

[WITHIN

{record-nameset-namerealm-name

} ]KEEPLIST ACCESSOFFSET integer-expFIRSTLAST

WITHIN keeplist-name

SWITCH-STATUS CONDITIONcondition-name-1

SIGN CONDITION

arithmetic-expression-1 IS [NOT]

{POSITIVENEGATIVEZERO

}TENANCY CONDITION

[NOT] [set-name]

{OWNERMEMBERTENANT

}DATABASE KEY CONDITION

database-key IS [NOT]

ALSO database-keyNULLWITHIN keeplist-name

66

Page 69: The following acknowledgment has been reproduced from COBOL

67

SUCCESS/FAILURE CONDITION

status-code-id IS

{SUCCESSFAILURE

}NEGATED CONDITIONNOT condition-1

COMBINED CONDITION

condition-1{{

ANDOR

}condition-2

}. . .

ABBREVIATED COMBINED RELATION CONDITION

relation-condition{{

ANDOR

}[NOT] [relational-operator] object

}. . .

DATABASE KEY IDENTIFIER ACCESSdatabase-key-identifier

DATABASE SET OWNER ACCESSOWNER WITHIN set-name

Page 70: The following acknowledgment has been reproduced from COBOL

RECORD SEARCH ACCESS

FIRSTLASTNEXTPRIORANYDUPLICATE[RELATIVE ] int-exp

[record-name]

[WITHIN

{realm-nameset-name

}] [ USING [record-key] . . .WHERE [boolean-expression]

]boolean-express:{boolean-alt [OR boolean-alt] . . . }boolean-alt:{simple-boolean-relation [AND simple-boolean-relation] . . . }simple-boolean-relation:{

boolean-conditionNOT boolean-expression

}

68

Page 71: The following acknowledgment has been reproduced from COBOL

69

boolean-condition:

{identifier-1literal-1

}

IS

GREATER THAN OR EQUAL TO>=LESS THAN OR EQUAL<=

IS [NOT]

EQUAL TO=GREATER THAN>LESS THAN<

DOES [NOT]

CONTAINCONTAINSMATCHMATCHES

{identifier-2literal-2

}

DATABASE ON ERROR CONDITION[NOT] ON ERROR imperative statement

Page 72: The following acknowledgment has been reproduced from COBOL

RETAINING CLAUSERETAINING∣∣∣∣∣∣∣REALMRECORD{SET [set-name] . . .{set-name} . . .

}∣∣∣∣∣∣∣ CURRENCY

Qualification

FORMAT 1

{data-name-1condition-name

} {{

INOF

}data-name-2

}. . .[{

INOF

}{file-namecd-name

}]{INOF

}{file-namecd-name

}

FORMAT 2

paragraph-name{INOF

}section-name

FORMAT 3

text-name{INOF

}library-name

70

Page 73: The following acknowledgment has been reproduced from COBOL

71

FORMAT 4

LINAGE-COUNTER

{INOF

}report-name

FORMAT 5{PAGE-COUNTERLINE-COUNTER

} {INOF

}report-name

FORMAT 6

data-name-3

{INOF

}data-name-4

[{INOF

}report-name

]{INOF

}report-name

Miscellaneous Formats

SUBSCRIPTING{condition-name-1data-name-1

}(

integer-1data-name-2 [{+-} integer-2]index-name-2 [{+-} integer-3]arithmetic-expression

. . . )

Page 74: The following acknowledgment has been reproduced from COBOL

REFERENCE MODIFICATIONdata-name-1 (leftmost-character-position:[length])

IDENTIFIER

data-name-1[{INOF

}data-name-2

]. . .

{INOF

} cd-namefile-namereport-name

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

General Format for Nested Source Programs

IDENTIFICATION DIVISION.PROGRAM-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.]

72

Page 75: The following acknowledgment has been reproduced from COBOL

73

General Format for Nested-Source-Program

IDENTIFICATION DIVISION.

PROGRAM-ID. program-name-2[IS

{∣∣∣∣COMMONINITIAL

∣∣∣∣} PROGRAM

].

[ENVIRONMENT DIVISION. environment-division-content][DATA DIVISION. data-division-content][PROCEDURE DIVISION. procedure-division-content][nested-source-program] . . .END PROGRAM program-name-2.

General Format for a Sequence of Source Programs

{IDENTIFICATION DIVISION.PROGRAM-ID. program-name-3 [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-3.} . . .IDENTIFICATION DIVISION.PROGRAM-ID. program-name-4 [IS INITIAL PROGRAM].

[ENVIRONMENT DIVISION. environment-division-content]

Page 76: The following acknowledgment has been reproduced from COBOL

[DATA DIVISION. data-division-content][PROCEDURE DIVISION. procedure-division-content][[nested-source-program] . . .END PROGRAM program-name-4.]

IV. FUNCTION NAMES AVAILABLE IN EXTENSIONS TO COBOL 85

ABS INTEGER ORDACOS INTEGER-OF-DATE ORD-MAXANNUITY INTEGER-OF-DAY ORD-MINASIN INTEGER-PART PIATAN LENGTH PRESENT-VALUECHAR LENGTH-AN RANDOMCHAR-NATIONAL LOG RANGECOS LOG10 REMCURRENT-DATE LOWER-CASE REVERSEDATE-OF-INTEGER MAX SIGNDAY-OF-INTEGER MEAN SINDISPLAY-OF MEDIAN SQRTEXCEPTION-FILE MIDRANGE STANDARD-DEVIATIONEXCEPTION-LOCATION MIN SUMEXCEPTION-STATEMENT MOD TANEXCEPTION-STATUS NATIONAL-OF UPPER-CASEEXP NUMVAL VARIANCEFACTORIAL NUMVAL-C WHEN-COMPILEDFRACTION-PART

74

Page 77: The following acknowledgment has been reproduced from COBOL

75

V. NEW COBOL 9X RESERVED WORDS

ALIGN INHERITS PROPERTYB-AND INTERFACE RAISEB-NOT INTERFACE-ID REPOSITORYB-OR INVARIANT RESERVEDB-XOR INVOKE RETURNINGCLASS-ID METHOD REUSESCONFORMING METHOD-ID SELFEND-INVOKE NATIONAL SUPEREXCEPTION-OBJECT NATIONAL-EDITED SYSTEM-OBJECTFACTORY OBJECT UNIVERSALFUNCTION OVERRIDE