CUCO study materials
CUCO study resources

CUCO key terms

CUCO · Get comfortable with the vocabulary.

IDENTIFICATION DIVISION

The first of the four COBOL divisions, holding program metadata such as PROGRAM-ID, AUTHOR, and DATE-WRITTEN. It is required and must precede all other divisions in a source program.

Related: PROGRAM-ID, Divisions
PROGRAM-ID

The paragraph inside the IDENTIFICATION DIVISION that names a program. The name links a main program to its load module and lets CALL statements and the operating system refer to it.

Related: IDENTIFICATION DIVISION, CALL Statement
Divisions

The four top-level sections of a COBOL program: IDENTIFICATION, ENVIRONMENT, DATA, and PROCEDURE. Each has a fixed order, and only the PROCEDURE DIVISION contains executable statements.

Related: IDENTIFICATION DIVISION, DATA DIVISION, PROCEDURE DIVISION
ENVIRONMENT DIVISION

The division that maps the program to its machine environment. It contains CONFIGURATION SECTION (source and object computers) and INPUT-OUTPUT SECTION, where files are assigned to external data sets.

Related: FILE-CONTROL, SELECT Statement
PROCEDURE DIVISION

The division holding executable logic. It is organised into paragraphs and sections, and it contains statements that move data, branch, loop, call subprograms, and perform input/output.

Related: Paragraph, PERFORM Statement
DATA DIVISION

The division that declares every data item the program uses, grouped into FILE, WORKING-STORAGE, LOCAL-STORAGE, and LINKAGE sections. Each item is described by level number, name, and PICTURE or USAGE clause.

Related: WORKING-STORAGE SECTION, PICTURE Clause, Level Numbers
WORKING-STORAGE SECTION

A DATA DIVISION section for variables that persist for the entire run of a program. Items are allocated and initialised once when the program is first loaded, and they retain values across calls.

Related: LOCAL-STORAGE SECTION, VALUE Clause
LOCAL-STORAGE SECTION

A DATA DIVISION section whose items are allocated and initialised each time the program is entered. It is used for working data that must not carry over between separate invocations of a subprogram.

Related: WORKING-STORAGE SECTION, LINKAGE SECTION
LINKAGE SECTION

A DATA DIVISION section describing data passed from a calling program to a subprogram. Items have no storage of their own; they are mapped onto the parameters named in the subprogram's PROCEDURE DIVISION header.

Related: CALL Statement, BY REFERENCE
Level Numbers

Two-digit numbers at the start of a data description that show hierarchy. Levels 01 through 49 group items into records and fields, 66 names RENAMES, 77 defines a standalone item, and 88 defines condition names.

Related: Group Item, ELEMENTARY Item, Eighty-Eight Level
PICTURE Clause

A clause that defines the character type and size of an elementary item. Symbols such as 9 for digits, X for any character, V for an implied decimal point, and S for sign describe its format.

Related: USAGE Clause, ELEMENTARY Item
USAGE Clause

A clause that specifies how an item is stored: DISPLAY for character form, COMP or COMP-3 for binary and packed-decimal numeric form, and COMP-1 or COMP-2 for floating point.

Related: PICTURE Clause, COMP-3
COMP-3

A USAGE that stores a numeric item in packed-decimal format, two digits per byte plus a sign nibble. It saves space and is common in files and databases, but it cannot be displayed directly without conversion.

Related: USAGE Clause, MOVE Statement
Group Item

A data item that contains subordinate items beneath it, identified by a level number lower than its children. It has no PICTURE and can be moved or compared as a single alphanumeric unit.

Related: Level Numbers, ELEMENTARY Item
ELEMENTARY Item

A data item with no subordinate items, defined by a PICTURE clause or an index usage. It is the smallest addressable unit in a record and holds a single value.

Related: Group Item, PICTURE Clause
REDEFINES Clause

A clause that lets two or more data descriptions occupy the same storage area. Only one interpretation is valid at a time, and the redefining item must have the same level and must not be longer than the original.

Related: Group Item, Level Numbers
Eighty-Eight Level

A special level number that attaches a condition name to a data item. The condition name can then be tested directly, as in IF record-status-ok, instead of comparing the item to a literal value.

Related: Level Numbers, IF Statement
OCCURS Clause

A clause that repeats a data description a fixed number of times, creating a table. Subscripts or indexes select an occurrence, and the clause may include ASCENDING or DESCENDING KEY phrases for searching.

Related: Subscript, SEARCH Statement, INDEXED BY
Subscript

A numeric value in parentheses after a table name that selects one occurrence of an OCCURS item. It may be a literal, a data name, or an arithmetic expression, and it counts from one.

Related: OCCURS Clause, Index
Index

A binary offset value associated with a table through the INDEXED BY phrase. It is used with SET, SEARCH, and PERFORM VARYING, and it is faster than a subscript because no conversion is needed.

Related: Subscript, SEARCH Statement, INDEXED BY
INDEXED BY

A phrase in the OCCURS clause that declares one or more index names for a table. The indexes are allocated with the table and can be manipulated with SET and used in SEARCH statements.

Related: Index, SEARCH Statement
MOVE Statement

The statement that copies data from a sending item to one or more receiving items. Rules differ for numeric and alphanumeric moves, and group moves treat the sending item as alphanumeric.

Related: COMP-3, Group Item
IF Statement

A conditional statement that runs one set of statements when a condition is true and an optional ELSE set when it is false. Conditions may use comparisons, condition names, or logical operators AND, OR, and NOT.

Related: Eighty-Eight Level, EVALUATE Statement
EVALUATE Statement

A multi-branch selection statement similar to a case construct. It compares one or more subjects against WHEN phrases, supports ranges and conditions, and can express logic that would otherwise need nested IF statements.

Related: IF Statement, GO TO Statement
PERFORM Statement

The statement that executes a paragraph, section, or inline statement block and then returns control. It supports repetition through TIMES, UNTIL, and VARYING phrases, giving COBOL its main looping construct.

Related: PERFORM VARYING, Paragraph
PERFORM VARYING

A PERFORM form that runs a routine repeatedly while incrementing a counter or index, optionally testing a condition before or after each pass. It is the standard way to walk through a table.

Related: PERFORM Statement, Index
GO TO Statement

A statement that transfers control directly to a named paragraph or section. It bypasses normal sequential flow and is discouraged in structured code except for the simple GO TO ... DEPENDING ON case.

Related: Paragraph, PERFORM Statement
Paragraph

A named block of statements in the PROCEDURE DIVISION, identified by a paragraph name in area A. Paragraphs can be performed as routines and are the target of GO TO and PERFORM.

Related: PROCEDURE DIVISION, PERFORM Statement
FILE-CONTROL

A paragraph in the ENVIRONMENT DIVISION that contains SELECT statements. Each SELECT assigns a logical file name to an external data set and names its organisation and access mode.

Related: SELECT Statement, ENVIRONMENT DIVISION
SELECT Statement

The entry in FILE-CONTROL that links a file name used in the program to an external data set or path. It also specifies ORGANIZATION and ACCESS MODE for the file.

Related: FILE-CONTROL, ORGANIZATION Clause
ORGANIZATION Clause

A SELECT clause that states a file's structure: SEQUENTIAL for records processed in order, INDEXED for keyed access, or RELATIVE for access by record number. It determines which I/O verbs are valid.

Related: SELECT Statement, VSAM
FD Entry

The file description entry in the FILE SECTION that names a file and describes its record layout. It must match the SELECT name and is followed by the record's 01-level description.

Related: FILE SECTION, SELECT Statement
FILE SECTION

The DATA DIVISION section that declares file records through FD entries. Each FD must correspond to a SELECT in FILE-CONTROL, and the records described there receive data from READ operations.

Related: FD Entry, FILE-CONTROL
OPEN and CLOSE Statements

Verbs that make a file available for processing and release it afterwards. OPEN names the mode (INPUT, OUTPUT, I-O, or EXTEND), and CLOSE ends access and writes any pending buffers.

Related: READ Statement, WRITE Statement
READ Statement

The verb that retrieves the next record from an input or I-O file into its record area. For indexed files, a KEY phrase allows direct retrieval of a specific record.

Related: OPEN and CLOSE Statements, FILE STATUS
WRITE Statement

The verb that adds a record to an output or I-O file from its record area. For indexed files, the key must be unique and set before the write, and INVALID KEY handles duplicates.

Related: READ Statement, FILE STATUS
FILE STATUS

A two-character data item declared in the FILE SECTION that receives a code after every I/O operation. Values such as 00 for success and 10 for end-of-file let the program test outcomes.

Related: READ Statement, AT END
AT END

A phrase on the READ statement that runs specified statements when no further records exist. It is the standard way to detect end-of-file and terminate a read loop.

Related: READ Statement, FILE STATUS
VSAM

A file access method on mainframe systems whose keyed and entry-sequenced data sets are commonly processed by COBOL INDEXED and RELATIVE files. Its record structure is described through an alternate approach such as a copybook.

Related: ORGANIZATION Clause, SELECT Statement
CALL Statement

The verb that transfers control to a subprogram, optionally passing parameters. Control returns after the subprogram finishes, and the calling program can test a RETURN-CODE value.

Related: LINKAGE SECTION, BY REFERENCE
BY REFERENCE

The default parameter-passing mode for CALL, where the subprogram receives the address of the caller's data. Changes made in the subprogram are visible to the caller after return.

Related: CALL Statement, BY CONTENT
BY CONTENT

A CALL parameter mode that passes a copy of the data rather than its address. The subprogram cannot alter the caller's original value, which protects data from unintended changes.

Related: CALL Statement, BY REFERENCE
COPY Statement

A compiler-directing statement that inserts the contents of a copybook into the source at that point. It is used to share record layouts and constants across many programs.

Related: Copybook, Level Numbers
Copybook

A separate source member containing reusable declarations, usually data descriptions, that is included with COPY. It keeps record layouts consistent across programs that share the same files.

Related: COPY Statement, FD Entry
Compiler-Directing Statements

Statements beginning with COPY, REPLACE, or similar keywords that act during compilation rather than at run time. They alter the source text before the compiler translates it into object code.

Related: COPY Statement, Copybook
Debugging Mode

A compile option that activates DEBUG lines and enables tools such as the interactive debugger. It lets a developer step through statements, set breakpoints, and inspect variables during testing.

Related: DISPLAY Statement, Compiler-Directing Statements
DISPLAY Statement

A verb that writes data to the standard output device, often used for tracing and quick diagnostics. It is simple but can disturb formatted output, so it is usually removed or conditioned in production.

Related: Debugging Mode, FILE STATUS
Abend

An abnormal end of a running program, typically caused by an unhandled error such as a data exception or invalid file operation. Mainframe systems produce a completion code that identifies the cause.

Related: FILE STATUS, Debugging Mode
Structured Programming

A coding style in COBOL that builds logic from sequence, selection, and iteration without arbitrary GO TO jumps. It uses PERFORM, IF, and EVALUATE to keep paragraphs single-purpose and testable.

Related: PERFORM Statement, GO TO Statement, EVALUATE Statement
Intrinsic Function

A built-in function supplied by the compiler, such as FUNCTION UPPER-CASE or FUNCTION CURRENT-DATE, invoked with the FUNCTION keyword inside an expression. Functions return values and cannot be used as statement verbs.

Related: EVALUATE Statement, MOVE Statement
Object-Oriented COBOL

An extension of COBOL that adds classes, objects, methods, and inheritance through keywords such as CLASS-ID and METHOD-ID. It allows reuse and encapsulation while still supporting traditional procedural programs.

Related: CALL Statement, Intrinsic Function