Appendix A: COBOL Reserved Words
Overview
COBOL reserved words are identifiers that have predefined meanings within the COBOL language and cannot be used as user-defined names for data items, paragraphs, sections, or programs. Using a reserved word as a data name or paragraph name will result in compilation errors that can be difficult to diagnose.
This appendix provides a comprehensive alphabetical listing of reserved words across three major COBOL standards:
- COBOL-85 (ANSI X3.23-1985) — The most widely implemented standard in production systems
- COBOL 2002 (ISO/IEC 1989:2002) — Added object-oriented features and new intrinsic functions
- COBOL 2014 (ISO/IEC 1989:2014) — The current standard with additional modern features
The Standard column indicates in which standard the word was first reserved. Words marked 85 are reserved in all subsequent standards. Words marked IBM are reserved in IBM Enterprise COBOL but are not part of the ISO standard.
Important Notes
- IBM Enterprise COBOL for z/OS reserves additional words beyond the ISO standard. These are noted with IBM in the Standard column.
- Some words are context-sensitive in certain standards, meaning they are only reserved when used in specific syntactic contexts. These are marked with an asterisk (*).
- When migrating between compilers, always verify reserved word lists for your target compiler.
- The COBOL compiler option
WORD(on IBM compilers) can modify the set of reserved words in effect.
Reserved Words: A
| Word | Standard | Brief Description |
|---|---|---|
| ACCEPT | 85 | Reads data from system input devices or system date/time |
| ACCESS | 85 | Specifies the access mode for a file (SEQUENTIAL, RANDOM, DYNAMIC) |
| ACTIVE-CLASS | 2002 | References the class of the currently executing object |
| ADD | 85 | Arithmetic verb that adds numeric operands |
| ADDRESS | 85 | Special register containing the address of a data item or linkage section item |
| ADVANCING | 85 | Controls line spacing in WRITE statements for print files |
| AFTER | 85 | Specifies timing of PERFORM or positioning of WRITE operations |
| ALL | 85 | Figurative constant representing repetition of a character or literal |
| ALLOCATE | 2014 | Dynamically allocates memory for a data item |
| ALPHABET | 85 | Defines a character set mapping in SPECIAL-NAMES |
| ALPHABETIC | 85 | Class condition testing for alphabetic characters (A-Z, a-z, space) |
| ALPHABETIC-LOWER | 85 | Class condition testing for lowercase alphabetic characters |
| ALPHABETIC-UPPER | 85 | Class condition testing for uppercase alphabetic characters |
| ALPHANUMERIC | 2002 | Specifies alphanumeric data category |
| ALPHANUMERIC-EDITED | 2002 | Specifies alphanumeric-edited data category |
| ALSO | 85 | Used in EVALUATE statement for multiple selection subjects |
| ALTER | 85 | Modifies the target of a GO TO statement (obsolete, avoid use) |
| ALTERNATE | 85 | Specifies an alternate record key for an indexed file |
| AND | 85 | Logical conjunction operator in conditional expressions |
| ANY | 85 | Universal matching condition in EVALUATE statements |
| APPLY | IBM | Specifies physical file characteristics (IBM extension) |
| ARE | 85 | Noise word used for readability in various statements |
| AREA | 85 | Defines physical boundaries of file storage areas |
| AREAS | 85 | Plural form of AREA for readability |
| ASCENDING | 85 | Specifies ascending sort/merge order or OCCURS key sequence |
| ASSIGN | 85 | Associates a file with an external file reference |
| AT | 85 | Used in various contexts (AT END, AT END-OF-PAGE) |
| AUTHOR | 85 | Identifies the author in the IDENTIFICATION DIVISION (obsolete in 2002+) |
Reserved Words: B
| Word | Standard | Brief Description |
|---|---|---|
| B-AND | 2002 | Bitwise AND operation |
| B-NOT | 2002 | Bitwise NOT operation |
| B-OR | 2002 | Bitwise OR operation |
| B-XOR | 2002 | Bitwise exclusive OR operation |
| BASED | IBM | Indicates a data item whose address is established at runtime |
| BEFORE | 85 | Specifies timing of PERFORM or positioning of WRITE operations |
| BEGINNING | 85 | Specifies beginning file label procedures |
| BINARY | 85 | USAGE clause option for binary numeric storage |
| BINARY-CHAR | 2002 | One-byte binary numeric item (unsigned) |
| BINARY-DOUBLE | 2002 | Eight-byte binary numeric item |
| BINARY-LONG | 2002 | Four-byte binary numeric item |
| BINARY-SHORT | 2002 | Two-byte binary numeric item |
| BIT | 2002 | Specifies a boolean/bit data type |
| BLANK | 85 | Fills a field with spaces or controls screen display blanking |
| BLOCK | 85 | Specifies blocking factor for file records |
| BOOLEAN | 2002 | Specifies a boolean data type |
| BOTTOM | 85 | Specifies the bottom margin for a page in a report |
| BY | 85 | Used in CALL BY REFERENCE/CONTENT/VALUE, MULTIPLY, DIVIDE, PERFORM |
Reserved Words: C
| Word | Standard | Brief Description |
|---|---|---|
| CALL | 85 | Transfers control to another program or entry point |
| CANCEL | 85 | Releases memory for a previously called subprogram |
| CBL | IBM | Compiler directive for specifying compiler options |
| CD | 85 | Communication description entry (obsolete in 2002+) |
| CF | 85 | Control footing report group type |
| CH | 85 | Control heading report group type |
| CHARACTER | 85 | Used in ALPHABET and CODE-SET clauses |
| CHARACTERS | 85 | Specifies unit of measure for INSPECT and BLOCK CONTAINS |
| CLASS | 85 | Defines a character class in SPECIAL-NAMES or an OO class (2002+) |
| CLASS-ID | 2002 | Identifies a class definition in object-oriented COBOL |
| CLOCK-UNITS | 85 | Specifies units for ACCEPT FROM TIME |
| CLOSE | 85 | Terminates processing of a file |
| COBOL | 85 | Language identifier used in COPY REPLACING |
| CODE | 85 | Identifies a report in the Report Writer |
| CODE-SET | 85 | Specifies the character encoding of a file |
| COL | 85 | Screen SECTION column position (same as COLUMN) |
| COLLATING | 85 | Specifies collating sequence for SORT, MERGE, or program |
| COLUMN | 85 | Specifies print column position in Report Writer or Screen Section |
| COM-REG | IBM | Communication register special register |
| COMMA | 85 | Represents the comma character in SPECIAL-NAMES |
| COMMON | 85 | Specifies a program can be called by any program in the compilation unit |
| COMMUNICATION | 85 | Communication Section header (obsolete in 2002+) |
| COMP | 85 | Abbreviation for COMPUTATIONAL usage |
| COMP-1 | IBM | Single-precision floating-point (IBM extension) |
| COMP-2 | IBM | Double-precision floating-point (IBM extension) |
| COMP-3 | IBM | Packed-decimal format (IBM extension, equivalent to PACKED-DECIMAL) |
| COMP-4 | IBM | Binary format (IBM extension, equivalent to BINARY) |
| COMP-5 | IBM | Native binary format (IBM extension) |
| COMPUTATIONAL | 85 | Specifies binary numeric data storage |
| COMPUTATIONAL-1 | IBM | Single-precision floating-point (IBM extension) |
| COMPUTATIONAL-2 | IBM | Double-precision floating-point (IBM extension) |
| COMPUTATIONAL-3 | IBM | Packed-decimal (IBM extension) |
| COMPUTATIONAL-4 | IBM | Binary (IBM extension) |
| COMPUTATIONAL-5 | IBM | Native binary (IBM extension) |
| COMPUTE | 85 | Evaluates an arithmetic expression and stores the result |
| CONDITION | 2002 | Specifies a condition name in OO exception handling |
| CONFIGURATION | 85 | Configuration Section header in ENVIRONMENT DIVISION |
| CONTAINS | 85 | Used in BLOCK CONTAINS and RECORD CONTAINS clauses |
| CONTENT | 85 | Specifies CALL BY CONTENT parameter passing |
| CONTINUE | 85 | No-operation statement used as a placeholder |
| CONTROL | 85 | Specifies control break fields for Report Writer |
| CONTROLS | 85 | Plural form of CONTROL |
| CONVERTING | 85 | INSPECT CONVERTING option for character translation |
| COPY | 85 | Includes text from a copybook library member |
| CORR | 85 | Abbreviation for CORRESPONDING |
| CORRESPONDING | 85 | Operates on identically named data items in group items |
| COUNT | 85 | Used in INSPECT TALLYING and UNSTRING COUNT IN |
| CURRENCY | 85 | Defines the currency symbol in SPECIAL-NAMES |
Reserved Words: D
| Word | Standard | Brief Description |
|---|---|---|
| DATA | 85 | DATA DIVISION header |
| DATE | 85 | System date accessed via ACCEPT FROM DATE |
| DATE-COMPILED | 85 | Records compilation date in IDENTIFICATION DIVISION (obsolete) |
| DATE-WRITTEN | 85 | Records writing date in IDENTIFICATION DIVISION (obsolete) |
| DAY | 85 | Julian day accessed via ACCEPT FROM DAY |
| DAY-OF-WEEK | 85 | Day of week accessed via ACCEPT FROM DAY-OF-WEEK |
| DBCS | IBM | Double-byte character set usage (IBM extension) |
| DE | 85 | Detail report group type in Report Writer |
| DEBUG-CONTENTS | 85 | Special register for debugging (obsolete) |
| DEBUG-ITEM | 85 | Special register for debugging (obsolete) |
| DEBUG-LINE | 85 | Special register for debugging (obsolete) |
| DEBUG-NAME | 85 | Special register for debugging (obsolete) |
| DEBUG-SUB-1 | 85 | Special register for debugging (obsolete) |
| DEBUG-SUB-2 | 85 | Special register for debugging (obsolete) |
| DEBUG-SUB-3 | 85 | Special register for debugging (obsolete) |
| DEBUGGING | 85 | Enables debugging features |
| DECIMAL-POINT | 85 | Exchanges roles of comma and period in SPECIAL-NAMES |
| DECLARATIVES | 85 | Begins declarative procedures section |
| DEFAULT | 2002 | Specifies default values or behaviors |
| DELETE | 85 | Removes a record from an indexed or relative file |
| DELIMITED | 85 | Used in STRING and UNSTRING for delimiter specification |
| DELIMITER | 85 | Stores the delimiter found during UNSTRING |
| DEPENDING | 85 | Used in OCCURS DEPENDING ON for variable-length tables |
| DESCENDING | 85 | Specifies descending sort/merge order or OCCURS key sequence |
| DESTINATION | 85 | Specifies output destination in Communication Section (obsolete) |
| DETAIL | 85 | Detail report group type in Report Writer |
| DISPLAY | 85 | Writes data to system output device; also a USAGE clause option |
| DISPLAY-1 | IBM | DBCS display usage (IBM extension) |
| DIVIDE | 85 | Arithmetic verb that divides numeric operands |
| DIVISION | 85 | Major structural component of a COBOL program |
| DOWN | 85 | Direction specifier in SORT and SET statements |
| DUPLICATES | 85 | Allows or disallows duplicate key values |
| DYNAMIC | 85 | Specifies dynamic file access mode |
Reserved Words: E
| Word | Standard | Brief Description |
|---|---|---|
| EGCS | IBM | Extended graphic character set (IBM extension) |
| EGI | 85 | End of group indicator in Communication Section (obsolete) |
| EJECT | IBM | Forces a page eject in the compiler listing |
| ELSE | 85 | Alternative branch in IF statement |
| EMI | 85 | End of message indicator (obsolete) |
| ENABLE | 85 | Enables communication facility (obsolete) |
| END | 85 | Generic scope terminator |
| END-ACCEPT | 85 | Scope terminator for ACCEPT statement |
| END-ADD | 85 | Scope terminator for ADD statement |
| END-CALL | 85 | Scope terminator for CALL statement |
| END-COMPUTE | 85 | Scope terminator for COMPUTE statement |
| END-DELETE | 85 | Scope terminator for DELETE statement |
| END-DISPLAY | 85 | Scope terminator for DISPLAY statement |
| END-DIVIDE | 85 | Scope terminator for DIVIDE statement |
| END-EVALUATE | 85 | Scope terminator for EVALUATE statement |
| END-IF | 85 | Scope terminator for IF statement |
| END-MULTIPLY | 85 | Scope terminator for MULTIPLY statement |
| END-OF-PAGE | 85 | Detects end of page during WRITE to print file |
| END-PERFORM | 85 | Scope terminator for inline PERFORM statement |
| END-READ | 85 | Scope terminator for READ statement |
| END-RECEIVE | 85 | Scope terminator for RECEIVE statement |
| END-RETURN | 85 | Scope terminator for RETURN statement |
| END-REWRITE | 85 | Scope terminator for REWRITE statement |
| END-SEARCH | 85 | Scope terminator for SEARCH statement |
| END-START | 85 | Scope terminator for START statement |
| END-STRING | 85 | Scope terminator for STRING statement |
| END-SUBTRACT | 85 | Scope terminator for SUBTRACT statement |
| END-UNSTRING | 85 | Scope terminator for UNSTRING statement |
| END-WRITE | 85 | Scope terminator for WRITE statement |
| ENDING | 85 | Specifies ending file label procedures |
| ENTER | 85 | Allows entry of non-COBOL statements (obsolete) |
| ENTRY | IBM | Defines an alternate entry point for a called program |
| ENVIRONMENT | 85 | ENVIRONMENT DIVISION header |
| EOP | 85 | Abbreviation for END-OF-PAGE |
| EQUAL | 85 | Relational condition operator |
| ERROR | 85 | Used in declarative USE procedures and I-O error handling |
| ESCAPE | 2002 | Exits from inline PERFORM or other construct |
| ESI | 85 | End of segment indicator (obsolete) |
| EVALUATE | 85 | Multi-branch conditional statement (case/switch equivalent) |
| EVERY | 85 | Used in INSPECT REPLACING CHARACTERS BY ... EVERY |
| EXCEPTION | 85 | Condition raised during I-O operations or CALL |
| EXCLUSIVE | 2002 | File locking mode |
| EXEC | IBM | Begins embedded SQL or CICS command |
| EXECUTE | IBM | Alternative form of EXEC |
| EXHIBIT | IBM | Debugging verb that displays data item names and values |
| EXIT | 85 | Transfers control out of a paragraph, section, or program |
| EXTEND | 85 | Opens a file for appending records |
| EXTERNAL | 85 | Specifies data or file is shared between programs |
Reserved Words: F–G
| Word | Standard | Brief Description |
|---|---|---|
| FACTORY | 2002 | Defines factory (class-level) methods and data |
| FALSE | 85 | Boolean figurative constant or condition value |
| FD | 85 | File Description entry in DATA DIVISION |
| FILE | 85 | FILE SECTION header or file organization reference |
| FILE-CONTROL | 85 | FILE-CONTROL paragraph in ENVIRONMENT DIVISION |
| FILLER | 85 | Unnamed data item used as a placeholder |
| FINAL | 85 | Highest control level in Report Writer |
| FIRST | 85 | Used in INSPECT to reference first occurrence |
| FLOAT-EXTENDED | 2002 | Extended-precision floating-point type |
| FLOAT-LONG | 2002 | Double-precision floating-point type |
| FLOAT-SHORT | 2002 | Single-precision floating-point type |
| FOOTING | 85 | Specifies footing area for print page |
| FOR | 85 | Used in INSPECT, TALLYING, and other clauses |
| FORMAT | 2002 | Specifies date/time format |
| FREE | 2014 | Releases dynamically allocated memory |
| FROM | 85 | Source specification in WRITE, ACCEPT, SUBTRACT, and other statements |
| FUNCTION | 85 | Invokes an intrinsic function |
| FUNCTION-ID | 2002 | Identifies a user-defined function |
| GENERATE | 85 | Produces a report group in Report Writer |
| GET | 2002 | Retrieves a property value in OO COBOL |
| GIVING | 85 | Specifies the result field for arithmetic operations and SORT/MERGE |
| GLOBAL | 85 | Makes a data item or file accessible to nested programs |
| GO | 85 | Transfers control unconditionally (GO TO) |
| GOBACK | IBM/2002 | Returns control to the calling program or system |
| GREATER | 85 | Relational condition operator |
| GROUP | 85 | Group item or Report Writer group type |
| GROUP-USAGE | IBM | Specifies group item encoding (NATIONAL, UTF-8) |
Reserved Words: H–I
| Word | Standard | Brief Description |
|---|---|---|
| HEADING | 85 | Specifies heading area for print page |
| HIGH-VALUE | 85 | Figurative constant representing the highest value character |
| HIGH-VALUES | 85 | Plural form of HIGH-VALUE |
| I-O | 85 | Opens a file for both input and output |
| I-O-CONTROL | 85 | I-O-CONTROL paragraph in ENVIRONMENT DIVISION |
| ID | 85 | Abbreviation for IDENTIFICATION |
| IDENTIFICATION | 85 | IDENTIFICATION DIVISION header |
| IF | 85 | Conditional execution statement |
| IN | 85 | Qualification connector for data name references |
| INDEX | 85 | USAGE clause option for index data items |
| INDEXED | 85 | Specifies indexed file organization |
| INDICATE | 85 | Controls first-time printing in Report Writer |
| INHERITS | 2002 | Specifies class inheritance in OO COBOL |
| INITIAL | 85 | Specifies a program is in initial state each time called |
| INITIALIZE | 85 | Sets data items to predetermined values |
| INITIATE | 85 | Begins Report Writer processing |
| INPUT | 85 | Opens a file for reading or specifies SORT input |
| INPUT-OUTPUT | 85 | INPUT-OUTPUT SECTION header |
| INSPECT | 85 | Examines and optionally modifies characters in a data item |
| INSTALLATION | 85 | Identifies installation in IDENTIFICATION DIVISION (obsolete) |
| INTO | 85 | Target specification in READ, DIVIDE, UNSTRING |
| INVALID | 85 | Condition for invalid key in I-O operations |
| INVOKE | 2002 | Calls a method on an object in OO COBOL |
| IS | 85 | Noise word used for readability |
Reserved Words: J–L
| Word | Standard | Brief Description |
|---|---|---|
| JSON | IBM | JSON GENERATE/PARSE operations (IBM extension) |
| JUST | 85 | Abbreviation for JUSTIFIED |
| JUSTIFIED | 85 | Right-justifies data within a receiving field |
| KANJI | IBM | Specifies Kanji character handling (IBM extension) |
| KEY | 85 | Specifies record key for indexed files or SORT key |
| LABEL | 85 | Specifies label records for a file (obsolete) |
| LAST | 85 | References the last occurrence in INSPECT or Report Writer |
| LEADING | 85 | Specifies leading characters in INSPECT or sign position |
| LEFT | 85 | Left-justification or sign position specification |
| LENGTH | 85 | Special register or intrinsic function returning item length |
| LESS | 85 | Relational condition operator |
| LIMIT | 85 | Specifies page limit in Report Writer |
| LIMITS | 85 | Plural form of LIMIT |
| LINAGE | 85 | Specifies logical page size for print files |
| LINAGE-COUNTER | 85 | Special register containing current line count |
| LINE | 85 | Specifies line number in Report Writer or Screen Section |
| LINE-COUNTER | 85 | Special register for Report Writer line counting |
| LINES | 85 | Plural form of LINE |
| LINKAGE | 85 | LINKAGE SECTION header for passed parameters |
| LOCAL-STORAGE | 2002 | LOCAL-STORAGE SECTION for per-invocation data |
| LOCALE | 2002 | Specifies locale-specific formatting |
| LOCK | 85 | File locking mechanism for concurrent access |
| LOW-VALUE | 85 | Figurative constant representing the lowest value character |
| LOW-VALUES | 85 | Plural form of LOW-VALUE |
Reserved Words: M–N
| Word | Standard | Brief Description |
|---|---|---|
| MEMORY | 85 | Specifies memory size in OBJECT-COMPUTER (obsolete) |
| MERGE | 85 | Combines two or more ordered files into one |
| MESSAGE | 85 | Used in Communication Section (obsolete) |
| METHOD | 2002 | Defines a method in OO COBOL |
| METHOD-ID | 2002 | Identifies a method definition |
| MODE | 85 | Specifies access mode or operational mode |
| MODULES | 85 | Unit of measure for MEMORY clause (obsolete) |
| MORE-LABELS | IBM | Indicates additional labels for a file (IBM extension) |
| MOVE | 85 | Transfers data from one item to another |
| MULTIPLE | 85 | Specifies multiple file tape operations |
| MULTIPLY | 85 | Arithmetic verb for multiplication |
| NATIONAL | 2002 | Specifies national (Unicode) character data |
| NATIONAL-EDITED | 2002 | Specifies national edited data |
| NATIVE | 85 | Specifies native character set |
| NEGATIVE | 85 | Sign condition test for negative values |
| NESTED | 2002 | Specifies a nested program or class |
| NEXT | 85 | Specifies next record in sequential access or next sentence |
| NO | 85 | Negation in various clauses |
| NOT | 85 | Logical negation operator |
| NULL | 85 | Figurative constant for null pointer value |
| NULLS | 85 | Plural form of NULL |
| NUMBER | 85 | Used in COLUMN NUMBER, LINE NUMBER clauses |
| NUMERIC | 85 | Class condition testing for numeric characters |
| NUMERIC-EDITED | 2002 | Specifies numeric-edited data category |
Reserved Words: O
| Word | Standard | Brief Description |
|---|---|---|
| OBJECT | 2002 | Defines object instance data and methods in OO COBOL |
| OBJECT-COMPUTER | 85 | Specifies the computer for program execution |
| OBJECT-REFERENCE | 2002 | Data type for referencing objects |
| OCCURS | 85 | Defines table (array) dimensions |
| OF | 85 | Qualification connector (same as IN) |
| OFF | 85 | Used to deactivate debugging or status |
| OMITTED | 85 | Specifies omitted parameter in CALL or LABEL RECORDS |
| ON | 85 | Used in ON SIZE ERROR, ON OVERFLOW, and other clauses |
| OPEN | 85 | Makes a file available for processing |
| OPTIONAL | 85 | Specifies a file need not be present at OPEN |
| OR | 85 | Logical disjunction operator |
| ORDER | 85 | Specifies presentation order in Report Writer |
| ORGANIZATION | 85 | Specifies file organization type |
| OTHER | 85 | Default branch in EVALUATE statement |
| OUTPUT | 85 | Opens a file for writing or specifies SORT output |
| OVERFLOW | 85 | Condition for STRING/UNSTRING or CALL overflow |
| OVERRIDE | 2002 | Overrides an inherited method in OO COBOL |
Reserved Words: P
| Word | Standard | Brief Description |
|---|---|---|
| PACKED-DECIMAL | 85 | USAGE clause option for packed-decimal storage |
| PADDING | 85 | Specifies padding character for sequential files |
| PAGE | 85 | Specifies page boundaries in Report Writer |
| PAGE-COUNTER | 85 | Special register for Report Writer page numbering |
| PARAGRAPH | 2002 | Used in RAISE and exception handling |
| PASSWORD | IBM | Specifies password for VSAM file access (IBM extension) |
| PERFORM | 85 | Executes a paragraph/section or inline code with optional looping |
| PF | 85 | Page footing report group type |
| PH | 85 | Page heading report group type |
| PIC | 85 | Abbreviation for PICTURE |
| PICTURE | 85 | Defines the format and size of a data item |
| PLUS | 85 | Report Writer relative positioning |
| POINTER | 85 | USAGE clause option for address data; also STRING/UNSTRING positioning |
| POSITION | 85 | Specifies position within a record |
| POSITIVE | 85 | Sign condition test for positive values |
| PRESENT | 2002 | Controls conditional presentation in Report Writer |
| PRINTING | 85 | Used in WRITE BEFORE/AFTER ADVANCING PAGE |
| PROCEDURE | 85 | PROCEDURE DIVISION header |
| PROCEDURE-POINTER | IBM | Data type for holding procedure addresses (IBM extension) |
| PROCEDURES | 85 | Used in DECLARATIVES USE statements |
| PROCEED | 85 | Noise word in USE statement (obsolete) |
| PROGRAM | 85 | Used in PROGRAM-ID and END PROGRAM |
| PROGRAM-ID | 85 | Identifies the program name |
| PROGRAM-POINTER | IBM | Data type for holding program addresses (IBM extension) |
| PROPERTY | 2002 | Defines a property in OO COBOL |
| PROTOTYPE | 2002 | Defines a function or program prototype |
| PURGE | 85 | Removes a message from queue (obsolete) |
Reserved Words: Q–R
| Word | Standard | Brief Description |
|---|---|---|
| QUOTE | 85 | Figurative constant representing the quotation mark character |
| QUOTES | 85 | Plural form of QUOTE |
| RAISE | 2002 | Raises an exception condition |
| RAISING | 2002 | Declares exceptions a procedure may raise |
| RANDOM | 85 | Specifies random file access mode |
| RD | 85 | Report Description entry in Report Section |
| READ | 85 | Retrieves a record from a file |
| READY | IBM | READY TRACE debugging command (IBM extension) |
| RECEIVE | 85 | Receives a message from a queue (obsolete) |
| RECORD | 85 | Specifies record characteristics or record area |
| RECORDING | IBM | Specifies recording mode for a file (IBM extension) |
| RECORDS | 85 | Plural form of RECORD |
| REDEFINES | 85 | Redefines the storage area of a previous data item |
| REEL | 85 | Physical unit of tape media |
| REFERENCE | 85 | Specifies CALL BY REFERENCE parameter passing |
| REFERENCES | 85 | Plural form of REFERENCE |
| RELATIVE | 85 | Specifies relative file organization or relative key |
| RELEASE | 85 | Sends a record to a sort operation |
| RELOAD | IBM | Reloads a library module (IBM extension) |
| REMAINDER | 85 | Stores the remainder from a DIVIDE operation |
| REMOVAL | 85 | Specifies tape reel removal at CLOSE |
| RENAMES | 85 | Level-66 regrouping of data items |
| REPLACE | 85 | Compiler directive for text replacement |
| REPLACING | 85 | Specifies text replacement in COPY and INITIALIZE |
| REPORT | 85 | Report Section header or report file association |
| REPORTING | 85 | Specifies reporting on a control break |
| REPORTS | 85 | Specifies reports associated with a file |
| REPOSITORY | 2002 | Declares classes and interfaces used in a program |
| RERUN | 85 | Specifies checkpoint restart (obsolete) |
| RESERVE | 85 | Specifies the number of I-O buffers |
| RESET | 85 | Resets a SUM counter in Report Writer |
| RESUME | 2002 | Resumes execution after exception handling |
| RETRY | 2002 | Specifies retry logic for file operations |
| RETURN | 85 | Retrieves a record from a sort or merge operation |
| RETURN-CODE | IBM | Special register for program return code |
| RETURNING | 2002 | Specifies the return value of a CALL or function |
| REVERSED | 85 | Opens a tape file for reverse reading |
| REWIND | 85 | Positions tape at beginning |
| REWRITE | 85 | Updates a record in a file |
| RF | 85 | Report footing group type |
| RH | 85 | Report heading group type |
| RIGHT | 85 | Right-justification or sign position |
| ROUNDED | 85 | Specifies rounding for arithmetic operations |
| RUN | 85 | Used in STOP RUN statement |
Reserved Words: S
| Word | Standard | Brief Description |
|---|---|---|
| SAME | 85 | Specifies shared file storage areas |
| SCREEN | 85 | Screen Section header |
| SD | 85 | Sort-Merge File Description entry |
| SEARCH | 85 | Searches a table for an element matching conditions |
| SECTION | 85 | Structural subdivision of a division |
| SECURITY | 85 | Security notation in IDENTIFICATION DIVISION (obsolete) |
| SEGMENT | 85 | Program overlay segment (obsolete) |
| SEGMENT-LIMIT | 85 | Specifies overlay segment limit (obsolete) |
| SELECT | 85 | Associates a file name with a physical file |
| SELF | 2002 | References the current object instance |
| SEND | 85 | Sends a message to a queue (obsolete) |
| SENTENCE | 85 | Used in NEXT SENTENCE |
| SEPARATE | 85 | Specifies separate sign character |
| SEQUENCE | 85 | Specifies collating sequence or sequence checking |
| SEQUENTIAL | 85 | Specifies sequential file organization or access |
| SERVICE | IBM | Service reload/label compiler directive (IBM extension) |
| SET | 85 | Modifies the value of indexes, switches, or pointers |
| SHARING | 2002 | Specifies file sharing mode |
| SHIFT-IN | IBM | DBCS shift-in character (IBM extension) |
| SHIFT-OUT | IBM | DBCS shift-out character (IBM extension) |
| SIGN | 85 | Specifies sign position and representation |
| SIZE | 85 | Used in ON SIZE ERROR phrase |
| SKIP1 | IBM | Skips one line in compiler listing (IBM extension) |
| SKIP2 | IBM | Skips two lines in compiler listing (IBM extension) |
| SKIP3 | IBM | Skips three lines in compiler listing (IBM extension) |
| SORT | 85 | Sorts records from one or more files |
| SORT-CONTROL | IBM | Special register for sort control (IBM extension) |
| SORT-CORE-SIZE | IBM | Special register for sort memory (IBM extension) |
| SORT-FILE-SIZE | IBM | Special register for sort file size (IBM extension) |
| SORT-MERGE | 85 | Used in declarative USE procedures |
| SORT-MESSAGE | IBM | Special register for sort messages (IBM extension) |
| SORT-MODE-SIZE | IBM | Special register for sort mode (IBM extension) |
| SORT-RETURN | IBM | Special register for sort return code (IBM extension) |
| SOURCE | 85 | Specifies source data item in Report Writer |
| SOURCE-COMPUTER | 85 | Specifies the computer for compilation |
| SOURCES | 2002 | Plural form of SOURCE |
| SPACE | 85 | Figurative constant representing the space character |
| SPACES | 85 | Plural form of SPACE |
| SPECIAL-NAMES | 85 | Maps implementor names to mnemonic names |
| STANDARD | 85 | Specifies standard label records |
| STANDARD-1 | 85 | Specifies ASCII character set |
| STANDARD-2 | 85 | Specifies ISO 7-bit character set |
| START | 85 | Positions within an indexed or relative file |
| STATUS | 85 | Specifies a file status data item |
| STOP | 85 | Halts program execution |
| STRING | 85 | Concatenates partial or complete contents of data items |
| SUBTRACT | 85 | Arithmetic verb for subtraction |
| SUM | 85 | Accumulates values in Report Writer |
| SUPER | 2002 | References the superclass of the current object |
| SUPPRESS | 85 | Suppresses printing of a report group |
| SYMBOLIC | 85 | Used in SYMBOLIC CHARACTERS clause |
| SYNC | 85 | Abbreviation for SYNCHRONIZED |
| SYNCHRONIZED | 85 | Aligns data items on natural storage boundaries |
Reserved Words: T
| Word | Standard | Brief Description |
|---|---|---|
| TABLE | 85 | Used in COMMUNICATION SECTION (obsolete) |
| TALLY | IBM | Special register used with EXAMINE (IBM extension) |
| TALLYING | 85 | Counts occurrences in INSPECT and UNSTRING |
| TAPE | 85 | Tape media reference (obsolete) |
| TERMINAL | 85 | Used in COMMUNICATION SECTION (obsolete) |
| TERMINATE | 85 | Ends Report Writer processing |
| TEST | 85 | Specifies test timing in PERFORM (BEFORE/AFTER) |
| TEXT | 85 | Used in COMMUNICATION SECTION (obsolete) |
| THAN | 85 | Used in GREATER THAN, LESS THAN conditions |
| THEN | 85 | Used in IF-THEN and EVALUATE-WHEN-THEN |
| THROUGH | 85 | Specifies a range (same as THRU) |
| THRU | 85 | Specifies a range (abbreviation for THROUGH) |
| TIME | 85 | System time accessed via ACCEPT FROM TIME |
| TIMES | 85 | Specifies iteration count in PERFORM |
| TITLE | IBM | Specifies a title for compiler listing pages (IBM extension) |
| TO | 85 | Target specification in ADD, MOVE, and other statements |
| TOP | 85 | Specifies top-of-page positioning |
| TRACE | IBM | Enables statement tracing for debugging (IBM extension, obsolete) |
| TRAILING | 85 | Specifies trailing characters in INSPECT or sign position |
| TRUE | 85 | Boolean figurative constant or condition value |
| TYPE | 85 | Specifies report group type in Report Writer |
| TYPEDEF | 2002 | Defines a type definition |
Reserved Words: U–Z
| Word | Standard | Brief Description |
|---|---|---|
| UNIT | 85 | Physical unit of tape media |
| UNIVERSAL | 2002 | Universal object reference type |
| UNLOCK | 2002 | Releases record locks on a file |
| UNSTRING | 85 | Separates a data item into multiple receiving fields |
| UNTIL | 85 | Specifies loop termination condition in PERFORM |
| UP | 85 | Direction specifier in SET and other statements |
| UPON | 85 | Specifies target in DISPLAY or Report Writer SUM |
| USAGE | 85 | Specifies the internal storage format of a data item |
| USE | 85 | Specifies declarative procedures for error handling |
| USING | 85 | Specifies parameters in CALL, PROCEDURE DIVISION, SORT, MERGE |
| VAL-STATUS | 2014 | Validates and returns status of a data item |
| VALID | 2002 | Validates a data item against its definition |
| VALIDATE | 2002 | Validates data items |
| VALUE | 85 | Specifies initial or condition-name values for data items |
| VALUES | 85 | Plural form of VALUE |
| VARYING | 85 | Specifies a loop control variable in PERFORM |
| VOLATILE | 2014 | Indicates a data item may change outside program control |
| WHEN | 85 | Case label in EVALUATE or condition in SEARCH |
| WHEN-COMPILED | 85 | Special register containing compilation date/time |
| WITH | 85 | Noise word used for readability in various clauses |
| WORDS | 85 | Unit of measure in BLOCK CONTAINS |
| WORKING-STORAGE | 85 | WORKING-STORAGE SECTION header |
| WRITE | 85 | Writes a record to a file |
| XML | IBM | XML GENERATE/PARSE operations (IBM extension) |
| XML-CODE | IBM | Special register for XML operation status (IBM extension) |
| XML-EVENT | IBM | Special register for XML parse events (IBM extension) |
| XML-TEXT | IBM | Special register for XML text content (IBM extension) |
| ZERO | 85 | Figurative constant representing the value zero |
| ZEROES | 85 | Plural form of ZERO |
| ZEROS | 85 | Plural form of ZERO |
Tips for Avoiding Reserved Word Conflicts
-
Use meaningful prefixes: Prefix data names with abbreviations related to their record or purpose. For example, use
WS-STATUSinstead ofSTATUS, orCUST-CLASSinstead ofCLASS. -
Use hyphens: COBOL reserved words never contain hyphens in the middle. Data names like
RECORD-COUNT,FILE-STATUS, andPROGRAM-NAMEare always safe to use because the hyphenated forms are not reserved. -
Consult your compiler documentation: The reserved word list varies between compilers (IBM, Micro Focus, GnuCOBOL). Always check the specific reference manual for your compiler.
-
Use the compiler reserved word list option: IBM Enterprise COBOL provides the
WORDcompiler option that allows you to customize the reserved word table. This can be helpful when migrating programs between compilers. -
Common traps: The words
DATE,TIME,STATUS,CLASS,COUNT,DISPLAY,LENGTH,RECORD,TYPE, andVALUEfrequently cause conflicts. Always qualify or prefix these names.
This appendix covers approximately 350 reserved words. The complete list for any specific compiler may include additional implementation-specific words. Always refer to the reference manual for your specific COBOL compiler for the definitive list.