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 |