An alphabetical reference for the COBOL keywords and concepts taught across the Limerick COBOL course. Each entry has a one or two sentence definition and a link to the lesson where the term is first introduced — useful when you've landed on a mid-course page and need a quick refresher on a term used in passing.

Entries are grouped by topic and ordered alphabetically within each group. Use the Filter terms box to narrow the list as you type, or jump straight to a section using the links below.


Program structure & divisions

Term Definition First introduced in
AUTHOR Optional paragraph in the IDENTIFICATION DIVISION that names the program's author. Considered obsolete in modern COBOL but commonly seen in teaching examples. Four Divisions
COBOL Common Business-Oriented Language. A business-oriented programming language standardised since 1959, prominent in financial, government, and insurance systems. What is COBOL?
coding rules / Area A / Area B COBOL source has a column-based format: columns 1-6 are reserved for sequence numbers, column 7 for indicators, Area A (columns 8-11) holds division, section, paragraph, and 01-level headers, and Area B (columns 12-72) holds everything else. COBOL basics
DATA DIVISION One of COBOL's four divisions; declares every data item the program uses, organised into FILE, WORKING-STORAGE, LOCAL-STORAGE, and LINKAGE sections. Four Divisions
division Top-level partition of a COBOL program. The four divisions are IDENTIFICATION, ENVIRONMENT, DATA, and PROCEDURE. Four Divisions
ENVIRONMENT DIVISION Division that describes the computer environment — most importantly the FILE-CONTROL paragraph mapping logical files to external storage. Four Divisions
FILE-CONTROL Paragraph in the ENVIRONMENT DIVISION where each external file is associated with an internal file name via SELECT … ASSIGN. Declaring files
IDENTIFICATION DIVISION Division that names the program with PROGRAM-ID and supplies metadata such as AUTHOR or DATE-WRITTEN. Four Divisions
INPUT-OUTPUT SECTION Section of the ENVIRONMENT DIVISION that contains FILE-CONTROL. Declaring files
LINKAGE SECTION Section of the DATA DIVISION that declares data items received from a calling program through PROCEDURE DIVISION USING. The CALL verb
paragraph A named block of one or more sentences in the PROCEDURE DIVISION. Paragraphs are the unit targeted by PERFORM and GO TO. PERFORM..Proc
PROCEDURE DIVISION Division that contains the executable statements that make up the program logic. Four Divisions
PROGRAM-ID Required paragraph in the IDENTIFICATION DIVISION that gives the program its name. Four Divisions
section A named group of paragraphs in the PROCEDURE DIVISION; also the partitioning unit inside DATA and ENVIRONMENT divisions (e.g. WORKING-STORAGE SECTION). Four Divisions
sentence One or more COBOL statements terminated by a period. COBOL basics
statement A single instruction such as MOVE A TO B; multiple statements together form a sentence. COBOL basics
WORKING-STORAGE SECTION Section of the DATA DIVISION that declares variables that persist for the life of the program. Declaring data

Data declaration

Term Definition First introduced in
01-level Top-level data item; introduces a record and may contain subordinate items at higher level numbers (02-49). Group / elementary items
88-level Condition-name entry that gives a meaningful name to one or more values that its parent item can take, testable in IF, EVALUATE, and PERFORM UNTIL. Condition Names
alphanumeric Data item declared with picture symbol X, holding any character. Items are also classified as alphabetic (A) or numeric (9). Categories of data
COMP / COMPUTATIONAL USAGE that stores numeric data in the machine's native binary form, more compact and faster than DISPLAY for arithmetic. The USAGE clause
COMP-3 / PACKED-DECIMAL USAGE storing decimal digits two-per-byte with a sign half-byte. Common in mainframe data interchange. The USAGE clause
edited picture A PIC string containing insertion or replacement characters (e.g. Z, $, comma, slash) that format a numeric or alphanumeric item for display. Edited Pictures
elementary item A data item with a PIC clause that cannot be further subdivided. Group / elementary items
figurative constant Reserved word that stands in for a literal value, automatically sized to the receiving item. Examples: ZERO, SPACE, HIGH-VALUE, LOW-VALUE, QUOTE. Declaring data
FILLER Reserved word used as a data-name for an item whose contents the program never references — typically padding bytes or constant column text in a record. Declaring data
group item A composite data item that has subordinate items but no PIC clause of its own. Group / elementary items
HIGH-VALUE / LOW-VALUE Figurative constants representing the highest and lowest characters in the host's collating sequence — useful sentinel values for sequential search and indexed-file boundaries. Declaring data
level number Two-digit number from 01 to 49 (plus the specials 66, 77, 88) preceding a data-name that expresses the hierarchical position of the item within its record. Group / elementary items
numeric Data item declared with picture symbols 9 (digits) and optional S (sign) and V (assumed decimal point); can be used in arithmetic. Categories of data
OCCURS Clause that makes a data item a table by declaring it repeats N times. See also the tables section. Declaring a table
PICTURE / PIC Clause that declares an elementary item's category and size — for example PIC X(10) or PIC 9(5)V99. Declaring data
REDEFINES Clause that lets a second data item occupy the same storage as an existing item, viewing the bytes through a different PIC. Used to create pre-filled tables and union types. Pre-filled tables
SPACE / SPACES Figurative constants whose value is the space character, repeated to fill the receiving item. Declaring data
USAGE Clause that declares the internal representation of a data item — typically DISPLAY, COMP, COMP-3, INDEX, or POINTER. The USAGE clause
VALUE Clause that gives a data item an initial value at program start. Declaring data
ZERO / ZEROS / ZEROES Figurative constants whose value is the digit zero (or the character "0" for alphanumeric items), repeated to fill the receiving item. Declaring data

Procedure Division verbs

Term Definition First introduced in
ACCEPT Reads data from the console (or, in some dialects, a system source such as DATE or TIME) into a data item. User Input and Output
ADD Adds one or more operands to a receiving item (ADD A TO B; ADD A, B GIVING C). Arithmetic
COMPUTE Evaluates an arithmetic expression and stores the result in one or more items. Arithmetic
DISPLAY Writes data items and literals to the console. User Input and Output
DIVIDE Performs division between operands; supports GIVING and REMAINDER phrases. Arithmetic
INITIALIZE Resets a data item (and its subordinates) to category-appropriate defaults: zero for numeric, spaces for alphanumeric. Declaring data
MOVE Copies the value of one data item or literal into another. The MOVE verb
MULTIPLY Multiplies operands; supports MULTIPLY A BY B and GIVING forms. Arithmetic
STOP RUN Ends program execution and returns control to the operating system. Intro to programming
SUBTRACT Subtracts one or more operands from a receiving item; supports GIVING. Arithmetic

Control flow & conditions

Term Definition First introduced in
class condition Tests whether a data item's value is wholly NUMERIC, ALPHABETIC, ALPHABETIC-UPPER, or ALPHABETIC-LOWER. Selection using IF
condition name An 88-level entry that gives a true/false name to one or more values of its parent data item — for example 88 EndOfFile VALUE 'Y'. Condition Names
CONTINUE A no-op statement used as a placeholder where the syntax requires a statement, such as an empty branch of IF. Selection using IF
EVALUATE Multi-way decision verb resembling switch/case but able to test several subjects at once. The EVALUATE verb
EXIT Statement that marks the end of a paragraph, typically the target of PERFORM..THRU. PERFORM..THRU
GO TO Unconditional jump to a named paragraph; broadly considered bad style today except inside Sort or Merge input / output procedures where it returns control to the verb. PERFORM..Proc
IF Selection verb that executes one branch when the condition is true and an optional ELSE branch otherwise; terminated by a period or END-IF. Selection using IF
PERFORM Iteration verb that runs a paragraph (out-of-line) or an in-line block; combines with THRU, TIMES, UNTIL, and VARYING. PERFORM..Proc
PERFORM (in-line) PERFORM written as PERFORM … END-PERFORM that executes the statement block directly rather than naming a paragraph. PERFORM..TIMES
PERFORM..THRU Executes every paragraph from the first named through the second, in source order. PERFORM..THRU
PERFORM..TIMES Runs the body a fixed number of times. PERFORM..TIMES
PERFORM..UNTIL Runs the body repeatedly until the named condition becomes true. PERFORM..UNTIL
PERFORM..VARYING PERFORM with a controlled counter (FROM…BY…UNTIL) — COBOL's counted loop. PERFORM..VARYING
relation condition Comparison such as A > B or X = ZERO. Selection using IF
SET (condition) Sets a condition-name's parent to the appropriate value — for example SET EndOfFile TO TRUE stores 'Y' in the parent item. SET with Condition Names
sign condition Tests whether a numeric item is POSITIVE, NEGATIVE, or ZERO. Selection using IF

Files

Term Definition First introduced in
access mode The manner in which records are processed: SEQUENTIAL, RANDOM, or DYNAMIC. Declared in SELECT … ACCESS MODE IS …. File organization
ASSIGN SELECT clause that maps the internal file name to the external file (a path, a device, or an implementation-defined name). Declaring files
AT END Phrase on READ (and SEARCH) that runs when no more records are available. File handling verbs
CLOSE Disassociates a file from the program and flushes buffers. File handling verbs
DECLARATIVES Optional section at the top of the PROCEDURE DIVISION whose paragraphs run only when a USE-named event occurs — usually I/O errors. Declaratives
FD File Description entry in the FILE SECTION that names a file's record layout(s) and characteristics. Declaring files
FILE SECTION Section of the DATA DIVISION where each opened file's records are described via FD entries. Declaring files
file status Two-character data item set by every I/O operation, indicating success or the kind of failure. Declared in SELECT … FILE STATUS IS …. Relative file declarations
indexed file File organised on a key (and optional alternate keys) so a record can be read directly by its key value. Indexed file organization
INVALID KEY Phrase on READ, WRITE, REWRITE, DELETE, or START for keyed files that runs when the operation fails because of a key problem. Relative file verbs
OPEN Establishes an INPUT, OUTPUT, I-O, or EXTEND link to a file. File handling verbs
READ Retrieves the next (or, for keyed files, a specifically positioned) record from a file into its FD record layout. File handling verbs
RECORD KEY Field within an indexed file's record that uniquely identifies it; declared in SELECT … RECORD KEY IS …. Indexed file declarations
relative file File whose records are addressed by their position number (1, 2, 3, …) rather than by a key value. Relative file declarations
REWRITE Replaces the most recently read record in a file. File handling verbs
SELECT ENVIRONMENT DIVISION clause that introduces a file's name and its ASSIGN, ORGANIZATION, ACCESS MODE, and other attributes. Declaring files
sequential file File whose records are read or written one after another, in the order they were stored. Record-based files
START Positions a keyed file at a specified record (or one matching a relational test) before reading. Indexed file verbs
WRITE Adds a new record to a file. File handling verbs

Sort & merge

Term Definition First introduced in
ASCENDING / DESCENDING Key-direction phrases on SORT, MERGE, and OCCURS. Simple Sorting
GIVING (Sort/Merge) Phrase on SORT / MERGE that names the output file when no OUTPUT PROCEDURE is supplied. Simple Sorting
INPUT PROCEDURE Paragraph (or section) executed by SORT to feed records via RELEASE rather than from a USING file. SORT with INPUT PROCEDURE
MERGE Combines two or more pre-sorted input files into one output stream in key order. MERGEing files
OUTPUT PROCEDURE Paragraph (or section) executed by SORT / MERGE to consume sorted records via RETURN rather than writing a GIVING file. SORT with OUTPUT PROCEDURE
RELEASE Statement used inside an INPUT PROCEDURE to push a record into the sort. SORT with INPUT PROCEDURE
RETURN Statement used inside an OUTPUT PROCEDURE to fetch the next sorted record. SORT with OUTPUT PROCEDURE
SORT Reorders the records of a file or input stream into key order. Simple Sorting
USING (Sort/Merge) Phrase on SORT / MERGE that names the input file(s) when no INPUT PROCEDURE is supplied. Simple Sorting

Tables

Term Definition First introduced in
index (table) A specialised pointer associated with a table; the SEARCH verb walks an index, and SET assigns to one. OCCURS clause extensions
INDEXED BY OCCURS phrase that names an index for the table; required for SEARCH and SEARCH ALL. OCCURS clause extensions
OCCURS DEPENDING ON Variant of OCCURS that lets a table's length vary at run time, based on the value of another data item. OCCURS clause extensions
SEARCH Linear search through a table using an index; runs an action when a WHEN condition matches. The SEARCH verb
SEARCH ALL Binary search through a table sorted on its key; faster than SEARCH but requires the table to be in key order. The SEARCH ALL verb
subscript An integer (literal or data item) in parentheses after a table name that selects an occurrence — for example Months (3). Using a table
table A repeating data structure declared with OCCURS — COBOL's equivalent of an array. Why use tables?

Subprograms & libraries

Term Definition First introduced in
BY CONTENT CALL USING phrase that passes a copy of the argument so the called program cannot change the caller's data. The CALL verb
BY REFERENCE Default CALL USING mode; the called program operates directly on the caller's storage. The CALL verb
BY VALUE CALL USING phrase that passes a numeric or pointer value rather than a storage address. The CALL verb
CALL Invokes a separately compiled or contained subprogram, optionally passing arguments via USING. The CALL verb
contained subprogram A subprogram nested inside another program's source, sharing the host's environment. Contained Subprograms
COPY Compile-time directive that splices the contents of a copybook into the source at the COPY point. Using the COPY verb
COPY..REPLACING COPY variant that performs textual substitution as the copybook is included. COPY..REPLACING
copybook A file of reusable COBOL source brought in with COPY. Using the COPY verb
EXIT PROGRAM Returns control from a subprogram to its caller. The CALL verb
external subprogram A separately compiled program invoked with CALL "name". The CALL verb
GOBACK Returns control to the caller, behaving as STOP RUN when used in the main program and as EXIT PROGRAM when used in a subprogram. The CALL verb
USING (subprograms) PROCEDURE DIVISION phrase that lists the parameters a program expects from CALL … USING; the corresponding items live in the LINKAGE SECTION. The CALL verb

String handling

Term Definition First introduced in
DELIMITED BY STRING / UNSTRING phrase that names the character(s) that bound the substring being moved. The STRING verb
INSPECT Examines a string and either tallies character counts, replaces characters, or converts characters in place. Using the INSPECT
intrinsic function Built-in function called as FUNCTION name (args) that returns a numeric, alphanumeric, or date value (e.g. FUNCTION UPPER-CASE, FUNCTION CURRENT-DATE). Intrinsic Functions
reference modification Slice notation that extracts a substring by start position and length: Field (2:5). Reference Modification
STRING (verb) Concatenates one or more source items into a single destination item under DELIMITED BY rules. The STRING verb
UNSTRING Splits a source string at delimiters into a list of destination items, optionally counting and tallying. The UNSTRING verb

Report Writer

Term Definition First introduced in
CONTROL RD clause that names data items whose changes trigger control breaks (headings / footings). RD Entries
FOOTING Report-group TYPE that emits at the end of a control group or page. Report Group entries
GENERATE PROCEDURE DIVISION verb that produces a detail (or summary) report line and triggers any required headings or footings. Procedure Division verbs
HEADING Report-group TYPE that emits at the start of a control group or page. Report Group entries
INITIATE Begins reporting on a Report Writer report; resets counters and page numbers. Procedure Division verbs
LINE-COUNTER Special register tracking the current line on the printed page. Special registers
PAGE-COUNTER Special register tracking the current page number. Special registers
RD Report Description entry in the REPORT SECTION that defines a report's CONTROLs, PAGE layout, and report groups. RD Entries
REPORT SECTION DATA DIVISION section where each report's RD and report groups are declared. Report File entries
SUPPRESS Verb used inside a USE BEFORE REPORTING declarative to skip generating a group occurrence. Declaratives
TERMINATE Concludes a Report Writer report, emitting final control footings. Procedure Division verbs
USE BEFORE REPORTING DECLARATIVES phrase that runs a paragraph just before a given report group is generated. Declaratives