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

  1. IBM Enterprise COBOL for z/OS reserves additional words beyond the ISO standard. These are noted with IBM in the Standard column.
  2. 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 (*).
  3. When migrating between compilers, always verify reserved word lists for your target compiler.
  4. 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

  1. Use meaningful prefixes: Prefix data names with abbreviations related to their record or purpose. For example, use WS-STATUS instead of STATUS, or CUST-CLASS instead of CLASS.

  2. Use hyphens: COBOL reserved words never contain hyphens in the middle. Data names like RECORD-COUNT, FILE-STATUS, and PROGRAM-NAME are always safe to use because the hyphenated forms are not reserved.

  3. Consult your compiler documentation: The reserved word list varies between compilers (IBM, Micro Focus, GnuCOBOL). Always check the specific reference manual for your compiler.

  4. Use the compiler reserved word list option: IBM Enterprise COBOL provides the WORD compiler option that allows you to customize the reserved word table. This can be helpful when migrating programs between compilers.

  5. Common traps: The words DATE, TIME, STATUS, CLASS, COUNT, DISPLAY, LENGTH, RECORD, TYPE, and VALUE frequently 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.