Appendix F: Glossary

This glossary collects and defines over 200 terms used throughout Intermediate COBOL: Beyond the Basics. Each entry includes the chapter where the term is first introduced or most thoroughly discussed. Cross-references to related terms appear in italics within definitions. Acronyms are expanded at their primary entry and cross-referenced from the abbreviation.

Use this glossary as a quick-reference companion while reading. For deeper treatment of any topic, follow the chapter reference back to the main text.


A

ABEND (Abnormal End) — The unplanned termination of a program or task, typically due to an unrecoverable error such as a data exception (S0C7), protection exception (S0C4), or a deliberate ABEND issued by the program. On z/OS, ABENDs produce a system completion code or user completion code and often generate a dump for post-mortem analysis. (Ch. 33) See also: Dump, System Completion Code, Condition Code.

Access Method — A component of the operating system that manages the transfer of data between an application program and a dataset. Common access methods include QSAM, BSAM, and VSAM. The access method handles buffering, blocking, and physical I/O operations. (Ch. 11) See also: QSAM, BSAM, VSAM.

ACB (Access Control Block) — In VSAM, the control block that establishes a connection between a program and a VSAM cluster. Defined at run time using the ACB macro in assembler or implicitly through COBOL SELECT/ASSIGN and JCL DD statements. (Ch. 12)

ACCEPT — A COBOL statement that retrieves data from an external source, typically the system date/time or a user input device. In batch programs, ACCEPT FROM DATE/DAY/TIME retrieves system values; in CICS, ACCEPT is generally not used (replaced by CICS RECEIVE). (Ch. 3)

ADATA — Compiler-associated data produced when the ADATA compiler option is specified. Contains detailed symbol, cross-reference, and diagnostic information used by COBOL analysis tools and static analysis utilities. (Ch. 35)

ADDR — An address constant or the ADDRESS OF special register in COBOL, which provides the memory address of a data item. Used primarily in inter-language communication and dynamic call scenarios. (Ch. 26) See also: Pointer, ADDRESS OF.

ADDRESS OF — A COBOL special register that yields the memory address of a linkage section item or any level-01 or level-77 item in the working-storage or local-storage section. Central to pointer-based processing and reference modification. (Ch. 19) See also: Pointer, Reference Modification.

AIBTDLI — The Application Interface Block (AIB) version of the DL/I call interface used in IMS programming. Provides a standardized way to issue IMS database and message calls, replacing the older PCB-based CBLTDLI interface. (Ch. 31)

ALTERNATE RECORD KEY — A clause in the FILE-CONTROL paragraph that defines a secondary key for an indexed file (typically a VSAM KSDS with an alternate index). Allows retrieval by a key other than the primary key. (Ch. 12) See also: KSDS, Alternate Index, RECORD KEY.

Alternate Index (AIX) — A VSAM component that provides an additional access path to the records in a base cluster. An AIX is itself a KSDS whose records contain the alternate key and the primary key(s) of the base cluster records. Accessed through a path. (Ch. 12) See also: KSDS, PATH, ALTERNATE RECORD KEY.

API (Application Programming Interface) — A defined set of protocols and routines for building and integrating application software. In modernization contexts, COBOL programs are often wrapped behind REST or SOAP APIs to expose legacy functionality to modern consumers. (Ch. 39, Ch. 40) See also: REST, API Wrapping.

API Wrapping — A modernization technique in which a legacy COBOL program is left intact but is fronted by an API layer (typically REST/JSON or SOAP/XML) that translates modern service requests into calls the COBOL program understands. Preserves proven business logic while enabling new integration patterns. (Ch. 37, Ch. 40, Appendix I) See also: REST, Modernization.

APPLY WRITE-ONLY — A clause in the FILE-CONTROL paragraph or I-O-CONTROL paragraph that optimizes output buffering for sequential files by using a technique that reduces the number of physical I/O operations for variable-length records. (Ch. 14)

ASCII (American Standard Code for Information Interchange) — A character encoding standard. Mainframe COBOL programs typically use EBCDIC internally, but ASCII encoding is encountered when processing data exchanged with distributed systems. COBOL provides the NATIVE and STANDARD-1 (ASCII) alphabet names. (Ch. 17) See also: EBCDIC, Code Page.


B

Batch Processing — A mode of execution in which programs run without interactive user input, processing large volumes of data in scheduled jobs. Batch is the dominant execution model for COBOL workloads, typically orchestrated through JCL and managed by JES. (Ch. 1, Ch. 38) See also: JCL, JES, Online Processing.

BLL Cell (Base Locator for Linkage) — An internal mechanism used by CICS to establish addressability for data areas in the Linkage Section. In older COBOL programs under CICS, BLL cells were explicitly managed; modern COBOL compilers handle addressability automatically. (Ch. 29)

BMS (Basic Mapping Support) — A CICS facility that separates the physical format of a terminal screen (the map) from the application logic. BMS maps define screen layouts; the COBOL program sends and receives data through the map's symbolic description (the DFHMDI and DFHMDF macros). (Ch. 29, Ch. 30) See also: CICS, Map, SEND MAP, RECEIVE MAP.

BSAM (Basic Sequential Access Method) — A low-level z/OS access method that gives the programmer control over buffer management and I/O operations at the block level. Rarely used directly in COBOL; QSAM is the standard sequential access method for COBOL programs. (Ch. 11) See also: QSAM, Access Method.

Buffer — A region of memory used to hold data being transferred between a program and a storage device. Buffering reduces the number of physical I/O operations. The number of buffers can be controlled through JCL (BUFNO) and file definition parameters. (Ch. 14, Ch. 36)

BY CONTENT — A CALL statement phrase indicating that a copy of the argument is passed to the subprogram. The called program receives its own copy and cannot modify the caller's original data. (Ch. 23) See also: BY REFERENCE, BY VALUE, CALL.

BY REFERENCE — The default parameter-passing mechanism in COBOL CALL statements. The address of the argument is passed, allowing the called program to read and modify the caller's data directly. (Ch. 23) See also: BY CONTENT, BY VALUE, CALL.

BY VALUE — A CALL statement phrase indicating that the binary value of the argument is passed on the call stack, consistent with C calling conventions. Essential for inter-language communication with C, Java, and other languages. (Ch. 23, Ch. 26) See also: BY REFERENCE, BY CONTENT, Inter-Language Communication.


C

CALL — A COBOL statement that transfers control to a subprogram. CALL can be static (resolved at link-edit time) or dynamic (resolved at run time through the DYNAM compiler option or a CALL identifier). (Ch. 22) See also: Static Call, Dynamic Call, Subprogram, CANCEL.

CANCEL — A COBOL statement that logically removes a dynamically called subprogram from memory, forcing it to be reloaded and re-initialized on the next CALL. Releases the storage occupied by the subprogram's working-storage. (Ch. 22) See also: Dynamic Call, INITIAL.

Catalog — On z/OS, a structured file (the Integrated Catalog Facility, or ICF catalog) that records the location and attributes of datasets. The master catalog is the top-level catalog; user catalogs are associated with specific high-level qualifiers. (Ch. 2) See also: Dataset, IDCAMS.

CCSID (Coded Character Set Identifier) — A numeric identifier assigned by IBM to a specific set of character encoding rules. Determines how bytes are interpreted as characters. Critical when COBOL programs exchange data between EBCDIC mainframe systems and ASCII/UTF-8 distributed systems. (Ch. 17, Ch. 39)

CICS (Customer Information Control System) — IBM's transaction processing monitor for z/OS. CICS manages online transactions, providing terminal management, task scheduling, program management, file control, temporary storage, transient data, and recovery services. COBOL is the primary language for CICS application programs. (Ch. 29, Ch. 30) See also: BMS, COMMAREA, EIB, Task, Transaction.

CI (Control Interval) — The unit of data transfer between a VSAM dataset and virtual storage. A control interval contains data records, free space, and VSAM control information (RDFs and CIDFs). The CI size affects performance and space utilization. (Ch. 12) See also: Control Area, VSAM.

CIDF (Control Interval Definition Field) — A 4-byte field at the end of every control interval that contains the offset and length of the free space within the CI. (Ch. 12)

CI/CD (Continuous Integration / Continuous Delivery) — A software development practice in which code changes are automatically built, tested, and optionally deployed. Increasingly applied to mainframe COBOL through tools like IBM Dependency Based Build (DBB), Jenkins, and Urban Code Deploy. (Ch. 40, Appendix I) See also: DevOps, Modernization.

CICS Command — An EXEC CICS statement embedded in a COBOL program. CICS commands are preprocessed by the CICS translator (or the integrated CICS translator in Enterprise COBOL) before compilation. Common commands include READ, WRITE, SEND MAP, RECEIVE MAP, LINK, XCTL, RETURN, and SYNCPOINT. (Ch. 29, Ch. 30)

COBCH — The COBOL compiler diagnostic message prefix for some Micro Focus COBOL messages. IBM Enterprise COBOL uses the prefix IGYPA, IGYPS, or IGYCE depending on the compiler phase. (Ch. 33)

Code Page — A mapping between byte values and characters. Mainframe COBOL typically uses EBCDIC code pages (e.g., 037 for US English, 500 for international). Understanding code pages is essential when processing data that crosses platform boundaries. (Ch. 17) See also: EBCDIC, ASCII, CCSID.

COMMAREA (Communication Area) — A block of data passed between CICS programs using the LINK, XCTL, or RETURN TRANSID commands. The COMMAREA is the traditional mechanism for sharing state between CICS programs or between successive executions of a pseudo-conversational transaction. (Ch. 29, Ch. 30) See also: CICS, CHANNEL, CONTAINER, Pseudo-Conversational.

COMP (Computational) — A COBOL USAGE clause specifying binary (fixed-point) data representation. COMP items are stored as 2-byte, 4-byte, or 8-byte binary integers depending on the PICTURE clause. Also called BINARY. (Ch. 5) See also: COMP-3, COMP-1, COMP-2, PACKED-DECIMAL.

COMP-1 — A COBOL USAGE clause specifying single-precision floating-point (4 bytes). On z/OS, may be IBM hexadecimal floating-point or IEEE 754, depending on the FLOAT compiler option. (Ch. 5)

COMP-2 — A COBOL USAGE clause specifying double-precision floating-point (8 bytes). (Ch. 5) See also: COMP-1.

COMP-3 — A COBOL USAGE clause specifying packed-decimal representation, where each byte contains two decimal digits (one in each nibble) except the last byte, which contains one digit and the sign. Also called PACKED-DECIMAL. The dominant numeric format for financial calculations in COBOL. (Ch. 5) See also: COMP, PACKED-DECIMAL.

Compiler Option — A parameter that controls the behavior of the COBOL compiler. Key Enterprise COBOL options include RENT, DYNAM, THREAD, OPTIMIZE, TEST, SSRANGE, ARITH, NUMCHECK, and XMLPARSE. Options are specified on the CBL/PROCESS card, in JCL, or through installation defaults. (Ch. 2, Ch. 33, Ch. 36)

Condition Code — (1) In JCL, a numeric value (0–4095) returned by a program or job step indicating success or severity of problems. By convention, 0 = success, 4 = warning, 8 = error, 12 = severe error, 16 = terminal error. (2) In COBOL, the result of a conditional expression evaluation. (Ch. 2, Ch. 6) See also: RETURN-CODE, COND Parameter.

COND Parameter — A JCL parameter on the JOB or EXEC statement that controls whether a job step is executed based on the condition codes returned by previous steps. Largely superseded by IF/THEN/ELSE/ENDIF in modern JCL. (Appendix C) See also: Condition Code.

CONTAINER — In CICS, a named data area within a channel used to pass data between programs. Containers and channels are the modern replacement for the COMMAREA, supporting data areas larger than 32 KB. (Ch. 30) See also: CHANNEL, COMMAREA.

CHANNEL — In CICS, a named collection of containers passed between programs via LINK, XCTL, or START commands. Channels overcome the 32 KB limitation of the COMMAREA. (Ch. 30) See also: CONTAINER, COMMAREA.

CONTINUE — A COBOL statement that is a no-operation. Used as a placeholder in conditional statements (IF/EVALUATE) when no action is needed for a particular branch. (Ch. 6)

Control Area (CA) — A VSAM organizational unit consisting of multiple control intervals. Control area splits occur when a CA runs out of free space and must be reorganized. (Ch. 12) See also: Control Interval, VSAM.

Control Break — A report-processing pattern in which a change in the value of a control field triggers the printing of subtotals, headers, or other summary information. A fundamental COBOL batch processing pattern. (Ch. 16, Ch. 38) See also: Report Writer.

COPY — A COBOL compiler-directing statement that includes the contents of a copybook at the point where the COPY statement appears. Supports the REPLACING phrase for text substitution during inclusion. (Ch. 9) See also: Copybook, REPLACE.

Copybook — A file containing COBOL source code (typically data definitions or procedure division paragraphs) intended to be included in multiple programs via the COPY statement. Copybooks promote consistency and reduce maintenance effort. Stored in PDS members on z/OS. (Ch. 9) See also: COPY, PDS.

CORR (Corresponding) — A COBOL option used with MOVE, ADD, and SUBTRACT that operates on identically named elementary items within two group items. MOVE CORRESPONDING copies all matching fields from one group to another. (Ch. 4) See also: Group Item, Elementary Item.

Cursor Positioning — In BMS, the technique of placing the screen cursor at a specific field position. Achieved by setting the cursor attribute in the symbolic map or using the CURSOR option on SEND MAP. (Ch. 29)


D

DASD (Direct Access Storage Device) — Any storage device that allows data to be read or written without sequential scanning, typically a disk drive. On z/OS, DASD volumes hold datasets, VSAM clusters, and PDS members. (Ch. 2) See also: Volume, Dataset.

Dataset — The z/OS term for a file. Datasets are cataloged in the ICF catalog and have a 44-character name organized in dot-separated qualifiers (e.g., PROD.PAYROLL.MASTER). Dataset organization types include PS (sequential), PO (partitioned), and VSAM. (Ch. 2, Ch. 11) See also: PDS, VSAM, Sequential File.

DB2 — IBM's relational database management system for z/OS (and other platforms). COBOL programs access DB2 through embedded SQL statements (EXEC SQL ... END-EXEC). DB2 is the dominant relational database on the mainframe. (Ch. 27, Ch. 28) See also: Embedded SQL, SQLCA, DCLGEN.

DCLGEN (Declarations Generator) — A DB2 utility that generates COBOL data declarations (host variable definitions) and SQL DECLARE TABLE statements from DB2 table definitions. The generated copybook ensures that COBOL data structures match the database schema. (Ch. 27) See also: DB2, Host Variable, Embedded SQL.

Deadlock — A situation in which two or more tasks are each waiting for a resource held by the other, resulting in none of them being able to proceed. DB2 and CICS detect deadlocks and roll back one of the participating tasks. (Ch. 28, Ch. 32) See also: Lock, Timeout, SQLCODE -911.

Debugging — The process of identifying and correcting errors in a program. COBOL debugging techniques include DISPLAY statement tracing, compiler options (TEST, SSRANGE), IBM Debug Tool / z/OS Debugger, dump analysis, and log analysis. (Ch. 33) See also: Dump, SSRANGE, Debug Tool.

Debug Tool — IBM's interactive debugger for z/OS (now called z/OS Debugger). Allows setting breakpoints, inspecting and modifying variables, and stepping through COBOL programs executing in batch, CICS, IMS, or DB2 stored procedure environments. (Ch. 33)

DECLARATIVES — A section of the COBOL Procedure Division that contains USE statements for specifying procedures to handle exceptional conditions such as I/O errors. Declarative procedures are invoked automatically by the runtime when the specified condition occurs. (Ch. 10, Ch. 14) See also: USE AFTER, File Status.

DevOps — A set of practices combining software development (Dev) and IT operations (Ops) to shorten the development lifecycle. Mainframe DevOps applies CI/CD, automated testing, and infrastructure-as-code principles to COBOL and z/OS environments. (Ch. 40) See also: CI/CD.

DISPLAY — (1) A COBOL USAGE clause specifying zoned-decimal representation, where each digit occupies one byte (the default for numeric items without an explicit USAGE). (2) A COBOL statement that writes data to the default output device (typically SYSOUT in batch). (Ch. 3, Ch. 5, Ch. 33) See also: COMP, COMP-3.

DL/I (Data Language/I) — The hierarchical database language used by IMS. COBOL programs issue DL/I calls (GU, GN, GNP, ISRT, REPL, DLET) through the CBLTDLI or AIBTDLI interface. (Ch. 31) See also: IMS, Segment, PCB.

DSN (Data Set Name) — The fully qualified name of a dataset on z/OS, up to 44 characters with dot-separated qualifiers of up to 8 characters each. (Ch. 2) See also: Dataset.

Dump — A formatted display of the contents of a program's storage areas at the time of an ABEND. Tools like IPCS (Interactive Problem Control System) format dumps for analysis. COBOL programs can request a dump via a CALL to CEE3DMP or ILBOABN0. (Ch. 33) See also: ABEND, IPCS.

Dynamic Call — A CALL statement that resolves the target subprogram name at run time by loading it from a load library. Achieved through CALL identifier or through the DYNAM compiler option with CALL literal. Dynamic calls allow subprograms to be updated independently. (Ch. 22) See also: Static Call, CANCEL, DYNAM.

DYNAM — A COBOL compiler option that causes CALL literal statements to be treated as dynamic calls, resolving the subprogram at run time rather than at link-edit time. (Ch. 22) See also: Dynamic Call, Static Call.


E

EBCDIC (Extended Binary Coded Decimal Interchange Code) — The character encoding used natively on IBM mainframes. EBCDIC differs from ASCII in its mapping of characters to byte values, which affects collating sequence, data exchange, and string operations. (Ch. 17) See also: ASCII, Code Page, CCSID.

EIB (Execute Interface Block) — A CICS data area automatically available to every CICS application program. Contains information about the current transaction, including EIBCALEN (COMMAREA length), EIBTRNID (transaction ID), EIBDATE, EIBTIME, and EIBRESP (response code). (Ch. 29) See also: CICS, COMMAREA, EIBRESP.

EIBRESP — The EIB field containing the numeric response code from the last CICS command. Testing EIBRESP (using DFHRESP symbolic values like NORMAL, NOTFND, DUPKEY) is the modern alternative to HANDLE CONDITION for error handling. (Ch. 29, Ch. 30) See also: EIB, RESP, HANDLE CONDITION.

Elementary Item — A COBOL data item that is not further subdivided; it has a PICTURE clause. Contrast with a group item, which is subdivided into elementary items or other groups. (Ch. 4) See also: Group Item, PICTURE.

Embedded SQL — SQL statements coded directly within a COBOL program, delimited by EXEC SQL and END-EXEC. The DB2 precompiler (or coprocessor) translates embedded SQL into COBOL CALL statements before compilation. (Ch. 27, Ch. 28) See also: DB2, Host Variable, SQLCA, DCLGEN.

ENTRY — A COBOL statement that establishes an alternate entry point in a subprogram. Allows a single load module to present multiple callable interfaces. Less common in modern COBOL; separate subprograms are preferred. (Ch. 22)

ESDS (Entry-Sequenced Data Set) — A VSAM dataset organization in which records are stored in the order they were inserted. Records cannot be deleted, and their position is fixed. Accessed by RBA (Relative Byte Address) or sequentially. (Ch. 14) See also: VSAM, KSDS, RRDS.

EVALUATE — A COBOL conditional statement that provides multi-way branching (similar to switch/case in other languages). EVALUATE can test multiple subjects against multiple conditions simultaneously using EVALUATE TRUE, EVALUATE variable, or compound subjects. (Ch. 6) See also: IF, CONTINUE.

EXEC — The prefix that begins an embedded command in COBOL: EXEC SQL for DB2, EXEC CICS for CICS, EXEC DLI for IMS. These statements are processed by a precompiler or translator before COBOL compilation. (Ch. 27, Ch. 29, Ch. 31)


F

FILLER — A COBOL reserved word used as a data-name for data items that do not need to be referenced by name. Commonly used in record layouts, screen definitions, and group items to define positional padding. In COBOL 85 and later, the word FILLER is optional for unnamed items. (Ch. 4)

FILE-CONTROL — The paragraph within the ENVIRONMENT DIVISION's INPUT-OUTPUT SECTION that associates COBOL internal file names (SELECT) with external file identifiers (ASSIGN) and specifies file organization and access mode. (Ch. 11, Ch. 12) See also: SELECT, ASSIGN, Organization, Access Mode.

FILE STATUS — A two-byte data item defined in the FILE-CONTROL paragraph that receives a status code after every I/O operation. The first byte indicates the category (0 = success, 1 = at-end, 2 = invalid key, 3 = permanent error, 9 = implementor-defined). Checking file status is a fundamental defensive programming practice. (Ch. 10, Ch. 11) See also: Defensive Programming, I/O Error Handling.

Fixed-Point Arithmetic — Arithmetic operations performed on numbers with a fixed number of decimal places, as opposed to floating-point. COBOL's default arithmetic model uses fixed-point decimal (COMP-3 or DISPLAY numeric), which is preferred for financial calculations because it avoids floating-point rounding errors. (Ch. 5) See also: COMP-3, ARITH Compiler Option.


G

GDG (Generation Data Group) — A collection of historically related datasets arranged in chronological order. Each dataset in a GDG is a generation identified by a relative number (e.g., (+1) for new, (0) for current, (-1) for previous). Widely used in batch processing for managing daily, weekly, and monthly data. (Ch. 14, Ch. 38) See also: Dataset, Batch Processing.

GETMAIN — A CICS command that allocates a block of storage. Used when a program needs dynamic memory beyond its working-storage. FREEMAIN releases the acquired storage. (Ch. 30)

GnuCOBOL — An open-source COBOL compiler (formerly OpenCOBOL) that translates COBOL to C, then compiles the C to a native executable. Provides a way to learn and practice COBOL on Linux, macOS, and Windows without a mainframe. (Ch. 2) See also: Enterprise COBOL.

Group Item — A COBOL data item that is subdivided into one or more subordinate items. A group item does not have a PICTURE clause; its size is the sum of its subordinate items. Group items are always treated as alphanumeric when used in operations. (Ch. 4) See also: Elementary Item, Level Number.


H

HANDLE CONDITION — An older CICS command that establishes a label to branch to when a specified condition occurs. Considered legacy practice; modern CICS programming uses the RESP option and explicit testing of EIBRESP. (Ch. 29) See also: EIBRESP, RESP.

High-Level Qualifier (HLQ) — The first (leftmost) qualifier of a dataset name. On z/OS, the HLQ is typically the TSO user ID or a group identifier and is used by RACF for security authorization. (Ch. 2) See also: Dataset, DSN.

Host Variable — A COBOL data item referenced within an embedded SQL statement. Host variables are prefixed with a colon in SQL statements (e.g., :WS-EMPLOYEE-ID) and serve as the bridge between COBOL working-storage and DB2 columns. (Ch. 27) See also: Embedded SQL, DCLGEN, Indicator Variable.


I

ICF (Integrated Catalog Facility) — The catalog structure used on z/OS to track datasets, VSAM clusters, GDGs, and their physical locations. (Ch. 2) See also: Catalog, IDCAMS.

IDCAMS — An IBM utility program (Access Method Services) used to define, alter, delete, and manage VSAM datasets, catalogs, alternate indexes, and other data objects. Invoked through JCL with SYSIN control statements. (Ch. 12) See also: VSAM, Catalog.

IF — The fundamental COBOL conditional statement. Supports nested IF, IF/ELSE, and compound conditions using AND, OR, and NOT. The scope terminator END-IF (introduced in COBOL 85) is strongly preferred over period-terminated conditionals. (Ch. 6) See also: EVALUATE, END-IF.

IMS (Information Management System) — IBM's hierarchical database and transaction management system. IMS/DB is the database component; IMS/TM (Transaction Manager) is the transaction processing component. COBOL programs access IMS databases via DL/I calls. (Ch. 31) See also: DL/I, Segment, PCB, PSB.

Indicator Variable — In embedded SQL, a halfword (PIC S9(4) COMP) variable associated with a host variable. Indicates null values (value = -1), truncation (value = positive), or normal data (value = 0). Essential for handling nullable database columns. (Ch. 27) See also: Host Variable, NULL.

INITIAL — A clause on a PROGRAM-ID that specifies the program is in its initial state each time it is called (working-storage is re-initialized). Useful when a subprogram must not retain state between calls. (Ch. 22) See also: CANCEL, Working-Storage Section.

INITIALIZE — A COBOL statement that sets data items to predetermined values based on their category: alphanumeric items to spaces, numeric items to zeros. Supports the REPLACING phrase for custom initialization. A safer alternative to MOVE SPACES or MOVE ZEROS to a group item. (Ch. 4, Ch. 10)

Inline PERFORM — A PERFORM statement with the executed statements coded directly between PERFORM and END-PERFORM, rather than referencing a separate paragraph. Introduced in COBOL 85. (Ch. 7) See also: PERFORM, Out-of-Line PERFORM.

INSPECT — A COBOL statement that examines and optionally modifies characters or groups of characters in a data item. Supports TALLYING (counting), REPLACING, and CONVERTING operations. A key tool for string handling. (Ch. 17) See also: STRING, UNSTRING.

Inter-Language Communication (ILC) — The practice of COBOL programs calling or being called by programs written in other languages (C, Java, PL/I, Assembler). Requires careful attention to calling conventions, data representation, and the Language Environment runtime. (Ch. 26) See also: BY VALUE, Language Environment.

ISPF (Interactive System Productivity Facility) — The primary interactive interface for z/OS development. ISPF provides a panel-based editor, dataset management, dialog management, and access to TSO commands. Most mainframe COBOL development, editing, and browsing is performed through ISPF. (Ch. 2) See also: TSO, SDSF.


J

JCL (Job Control Language) — The scripting language used on z/OS to describe batch jobs to the operating system. JCL specifies the programs to run, the datasets they use, and the resources they require. Every COBOL batch program requires JCL to execute. (Ch. 2, Appendix C) See also: JOB Statement, EXEC Statement, DD Statement.

JES (Job Entry Subsystem) — The z/OS component (JES2 or JES3) that receives jobs, schedules them for execution, and manages their output (SYSOUT). JES manages the job queue and spool. (Ch. 2) See also: JCL, Spool, SDSF.

JOB Statement — The first statement in a JCL job stream, identified by //jobname JOB. Specifies the job name, accounting information, message class, and job-level parameters such as REGION and TIME. (Appendix C) See also: JCL, EXEC Statement, DD Statement.

JSON GENERATE — A COBOL statement (Enterprise COBOL 6.1+) that converts a COBOL data structure to JSON text. Enables COBOL programs to produce JSON output for REST APIs and modern integration patterns. (Ch. 39, Ch. 40) See also: JSON PARSE, XML GENERATE.

JSON PARSE — A COBOL statement (Enterprise COBOL 6.1+) that parses JSON text and populates a COBOL data structure. The counterpart to JSON GENERATE. (Ch. 39, Ch. 40)


K

KSDS (Key-Sequenced Data Set) — A VSAM dataset organization in which records are stored in logical order by a primary key. Supports direct (random), sequential, and dynamic access. The most commonly used VSAM organization, providing functionality similar to an indexed file. (Ch. 12) See also: VSAM, ESDS, RRDS, Alternate Index.


L

Language Environment (LE) — The common runtime environment for programs compiled by IBM's z/OS language compilers (COBOL, PL/I, C/C++, Fortran). LE provides condition handling, storage management, message services, date/time services, and inter-language communication support. (Ch. 22, Ch. 26) See also: Inter-Language Communication, CEE.

Level Number — A number (01–49, 66, 77, 88) that indicates the hierarchical position of a data item within a record. 01 = record level, 02–49 = subordinate levels, 66 = RENAMES, 77 = independent item, 88 = condition name. (Ch. 4) See also: Elementary Item, Group Item, 88 Level.

LINAGE — A clause in the FD (file description) that specifies the number of lines per page for a print file, along with footing, top, and bottom margins. Provides simple page-control without Report Writer. (Ch. 16)

Linkage Section — The section of the COBOL Data Division that describes data items received from a calling program, CICS, or the operating system. Items in the Linkage Section do not have storage allocated by the program itself; they reference storage owned by the caller. (Ch. 22, Ch. 23) See also: CALL, COMMAREA, ADDRESS OF.

Load Module — The executable form of a program stored in a PDS or PDSE load library. Created by the binder (linker) from one or more object modules. (Ch. 2) See also: Object Module, PDS.

Lock — A mechanism used by DB2 and CICS to control concurrent access to shared resources (rows, pages, tables, records). Locks prevent inconsistent data access but can cause contention or deadlocks if not managed carefully. (Ch. 28, Ch. 32) See also: Deadlock, Isolation Level.


M

Map — In BMS, the definition of a screen layout including field positions, attributes (protected, unprotected, bright, dark), and data types. Physical maps control screen formatting; symbolic maps (generated as COBOL copybooks) define the data interface. (Ch. 29) See also: BMS, Symbolic Map, Physical Map.

Microservice — A small, independently deployable service that performs a single business function. In COBOL modernization, microservice architecture may involve wrapping COBOL programs as individually deployable services behind APIs. (Ch. 40) See also: API Wrapping, Modernization.

Migration — The process of moving a COBOL application from one platform, compiler, or runtime to another (e.g., mainframe to cloud, Enterprise COBOL to GnuCOBOL, batch to online). Distinguished from modernization, which focuses on updating the architecture without necessarily changing the platform. (Ch. 37) See also: Modernization, Replatforming.

Modernization — Updating legacy COBOL systems to meet current business and technical requirements. Modernization strategies range from cosmetic changes (UI refresh) to structural changes (API enablement, data layer modernization) to complete replacement. (Ch. 37, Ch. 40, Appendix I) See also: Migration, API Wrapping, Strangler Pattern.

MOVE — The COBOL statement that transfers data from a source to one or more destinations. MOVE handles data conversion and truncation according to COBOL's data movement rules (alphanumeric = left-justified/space-padded, numeric = right-justified/zero-padded). (Ch. 3, Ch. 4) See also: MOVE CORRESPONDING.


N

Nested Program — A COBOL program defined within the scope of another COBOL program (contained program). Nested programs can share data with their containing program through the GLOBAL clause and provide structured modularity without external subprogram overhead. (Ch. 24) See also: Contained Program, GLOBAL.

NOT ON EXCEPTION — A COBOL phrase used with statements like CALL, STRING, UNSTRING, and ACCEPT to specify processing when the operation completes successfully (no exception condition). (Ch. 10, Ch. 17)

NULL — (1) In DB2/SQL, a value indicating the absence of data, distinct from zero or blank. Detected in COBOL through indicator variables. (2) In COBOL, the figurative constant representing a null address (used with pointers). (Ch. 19, Ch. 27) See also: Indicator Variable, Pointer.


O

Object Module — The output of the COBOL compiler: a machine-language translation of the source program that has not yet been linked into an executable load module. Stored in a dataset or PDS member with RECFM=FB, LRECL=80. (Ch. 2) See also: Load Module, Binder.

OCCURS — A COBOL clause that defines a table (array) by specifying the number of times a data item is repeated. OCCURS DEPENDING ON (ODO) defines variable-length tables. (Ch. 18) See also: Table Handling, SEARCH, SEARCH ALL, Index.

ON EXCEPTION — A COBOL phrase used with statements like CALL, STRING, and UNSTRING to specify processing when an exception condition occurs (e.g., subprogram not found, string overflow). (Ch. 10, Ch. 17, Ch. 22) See also: NOT ON EXCEPTION, Defensive Programming.

ON SIZE ERROR — A COBOL phrase used with arithmetic statements (ADD, SUBTRACT, MULTIPLY, DIVIDE, COMPUTE) to specify processing when the result exceeds the capacity of the receiving field. Essential for defensive programming. (Ch. 5, Ch. 10) See also: Defensive Programming.

Online Processing — Interactive transaction processing in which a user (or automated system) sends a request and receives a response, typically in sub-second time. On z/OS, online COBOL processing is managed by CICS or IMS/TM. (Ch. 29) See also: Batch Processing, CICS, IMS.

OPEN — A COBOL statement that makes a file available for processing. Modes include INPUT (read), OUTPUT (write new), I-O (read and update), and EXTEND (append). Must precede any READ, WRITE, REWRITE, or DELETE operation. (Ch. 11) See also: CLOSE, File Status.

Organization — The structural arrangement of records in a file. COBOL supports SEQUENTIAL, INDEXED, and RELATIVE organizations. On z/OS, these map to QSAM, VSAM KSDS, and VSAM RRDS, respectively. (Ch. 11, Ch. 12, Ch. 13)


P

PACKED-DECIMAL — A synonym for COMP-3. Each byte holds two decimal digits, except the rightmost byte, which holds one digit and the sign. (Ch. 5) See also: COMP-3, DISPLAY, Zoned Decimal.

Paragraph — A named block of code in the COBOL Procedure Division, terminated by the next paragraph or section name. Paragraphs are the primary unit of PERFORM targets and program organization. (Ch. 8) See also: Section, PERFORM.

PATH — In VSAM, a catalog entry that connects an alternate index to its base cluster, allowing programs to access the base cluster's records through the alternate key. (Ch. 12) See also: Alternate Index, KSDS.

PCB (Program Communication Block) — In IMS, a control block that describes the program's view of a database (DB PCB) or its connection to a message queue (I/O PCB). The PCB is passed to the COBOL program as a parameter. (Ch. 31) See also: PSB, IMS, DL/I.

PDS (Partitioned Data Set) — A z/OS dataset organized as a directory plus members, analogous to a folder containing files. Used for source libraries, copybook libraries, load libraries, and JCL libraries. A PDSE (Partitioned Data Set Extended) is the modern, improved version. (Ch. 2) See also: PDSE, Load Module, Copybook.

PDSE (Partitioned Data Set Extended) — An enhanced version of PDS with improved space management, support for program objects, and no requirement for periodic compression. Preferred over PDS for new allocations. (Ch. 2)

PERFORM — A COBOL statement that transfers control to a paragraph or section (out-of-line) or executes inline statements (inline PERFORM). Supports PERFORM VARYING for loops and PERFORM TIMES for counted iteration. (Ch. 7) See also: Paragraph, Section, Inline PERFORM.

PICTURE (PIC) — A COBOL clause that describes the characteristics of an elementary data item: its category (alphanumeric, numeric, edited), size, and decimal point position. Key symbols include 9 (digit), X (alphanumeric), A (alphabetic), V (implied decimal), S (sign), and edit characters (Z, $, comma, period). (Ch. 4) See also: Elementary Item, USAGE.

Pointer — A COBOL data item (USAGE POINTER) that holds a memory address. Used for dynamic memory management, inter-language communication, and accessing data areas in the Linkage Section whose address is set at run time via SET ADDRESS OF. (Ch. 19) See also: ADDRESS OF, SET, Linkage Section.

Precompiler — A preprocessor that translates embedded statements (EXEC SQL, EXEC CICS, EXEC DLI) into standard COBOL CALL statements before the COBOL compiler processes the source. DB2, CICS, and IMS each have their own precompiler (or integrated coprocessor in modern compilers). (Ch. 27, Ch. 29, Ch. 31)

Program-ID — The paragraph in the IDENTIFICATION DIVISION that names the COBOL program. The program-id is used to identify the program for CALL statements, CICS LINK/XCTL commands, and cataloging in load libraries. (Ch. 3)

Pseudo-Conversational — A CICS programming technique in which a transaction sends a screen to the user and then returns control to CICS (freeing resources). When the user responds, CICS starts a new task that reads the input and processes it. This pattern conserves system resources by not holding a task active while waiting for user input. (Ch. 29, Ch. 30) See also: CICS, COMMAREA, RETURN TRANSID.

PSB (Program Specification Block) — In IMS, a collection of PCBs that defines the total database and message processing capability of an application program. (Ch. 31) See also: PCB, IMS.


Q

QSAM (Queued Sequential Access Method) — The standard z/OS access method for sequential file processing in COBOL. QSAM handles buffering, blocking, and deblocking automatically, providing simple GET/PUT (READ/WRITE in COBOL) semantics. (Ch. 11) See also: BSAM, Sequential File, Access Method.


R

RACF (Resource Access Control Facility) — IBM's security product for z/OS that controls access to datasets, transactions, and system resources based on user IDs, groups, and security profiles. (Ch. 2)

RDF (Record Definition Field) — A 3-byte field at the end of each record within a VSAM control interval that describes the record's length and position. (Ch. 12)

RECORD KEY — The clause in FILE-CONTROL that identifies the primary key field of an indexed file. Records are stored in ascending order of the record key. (Ch. 12) See also: ALTERNATE RECORD KEY, KSDS.

REDEFINES — A COBOL clause that allows two or more data descriptions to share the same physical storage. Used when the same storage area can contain different types of data (e.g., a numeric field or a text field depending on a record type indicator). (Ch. 4) See also: RENAMES.

Reference Modification — A COBOL feature that allows access to a substring of a data item by specifying a starting position and length in parentheses: DATA-ITEM(start:length). (Ch. 19) See also: STRING, UNSTRING, Pointer.

RENAMES — The level-66 data item that provides an alternative grouping of elementary items from a record. Defined with RENAMES ... THRU ..., it creates a new group name spanning contiguous fields. Less commonly used than REDEFINES. (Ch. 4)

REPLACE — A COBOL compiler-directing statement that substitutes text strings throughout the source program until a REPLACE OFF is encountered. Distinguished from COPY ... REPLACING, which applies only within the copied text. (Ch. 9)

Report Writer — A COBOL feature (REPORT SECTION and associated statements) that automates the production of formatted reports, handling page breaks, control breaks, subtotals, and grand totals through declarative definitions rather than procedural code. (Ch. 16)

RESP — An option on CICS commands that stores the response code in a specified data item. Using RESP prevents CICS from abnormally terminating the task on error and allows the program to handle errors explicitly. (Ch. 29, Ch. 30) See also: EIBRESP, HANDLE CONDITION.

REST (Representational State Transfer) — An architectural style for distributed systems using HTTP methods. COBOL programs can be exposed as REST services through API wrapping or z/OS Connect EE. (Ch. 39, Ch. 40) See also: API Wrapping, z/OS Connect.

RETURN-CODE — A COBOL special register (PIC S9(4) COMP) that is set by the program to indicate its completion status to the operating system or calling program. Maps to the condition code in JCL. (Ch. 10, Ch. 22) See also: Condition Code.

REWRITE — A COBOL statement that replaces an existing record in a file. For sequential files opened I-O, REWRITE replaces the record most recently READ. For indexed and relative files, REWRITE replaces the record identified by the key. (Ch. 11, Ch. 12)

RRDS (Relative Record Data Set) — A VSAM dataset organization in which records are identified by their relative position (slot number) within the file. Provides direct access by record number. (Ch. 13) See also: VSAM, KSDS, ESDS, Relative File.


S

SDSF (System Display and Search Facility) — An ISPF-based z/OS tool for viewing job output, managing the JES spool, monitoring active jobs, and controlling the system. Essential for viewing COBOL batch job results and compiler listings. (Ch. 2) See also: JES, ISPF, Spool.

SEARCH — A COBOL statement that performs a serial (linear) search through a table defined with OCCURS and INDEXED BY. Starts from the current index position and increments sequentially. (Ch. 18) See also: SEARCH ALL, Table Handling, Index.

SEARCH ALL — A COBOL statement that performs a binary search through a table, requiring the table to be defined with ASCENDING/DESCENDING KEY. More efficient than SEARCH for large ordered tables. (Ch. 18) See also: SEARCH, Table Handling.

Section — A named block of code in the COBOL Procedure Division consisting of one or more paragraphs. Sections can be PERFORMED as a unit, and all paragraphs within the section execute. In the Data Division, sections (WORKING-STORAGE SECTION, LINKAGE SECTION, etc.) define categories of data. (Ch. 8) See also: Paragraph, PERFORM.

Segment — In IMS, the basic unit of data in a hierarchical database, roughly analogous to a row in a relational table. Segments are organized in a parent-child hierarchy. (Ch. 31) See also: IMS, DL/I, SSA.

SELECT — A clause in the FILE-CONTROL paragraph that assigns an internal file name (used in the FD and I/O statements) to an external file. The SELECT clause also specifies ORGANIZATION, ACCESS MODE, RECORD KEY, and FILE STATUS. (Ch. 11, Ch. 12) See also: FILE-CONTROL, ASSIGN, Organization.

Sequential File — A file in which records are stored and accessed in the order they were written. The simplest and most common file organization in COBOL batch processing, using QSAM on z/OS. (Ch. 11) See also: QSAM, Organization.

SET — A COBOL statement with multiple uses: SET index-name (table processing), SET condition-name TO TRUE (88-level), SET pointer (address manipulation), SET ADDRESS OF (linkage section addressability). (Ch. 18, Ch. 19)

SORT — A COBOL statement that sorts records from one or more input files (USING) or an input procedure, based on specified key fields, and writes the sorted records to an output file (GIVING) or an output procedure. Invokes the system sort utility (DFSORT or SyncSort). (Ch. 15) See also: MERGE, INPUT PROCEDURE, OUTPUT PROCEDURE.

SQLCA (SQL Communication Area) — A data structure included in every COBOL program that uses embedded SQL. Contains SQLCODE, SQLSTATE, SQLERRD, and SQLWARN fields that report the result of each SQL statement. Included via EXEC SQL INCLUDE SQLCA. (Ch. 27) See also: SQLCODE, Embedded SQL.

SQLCODE — A field in the SQLCA indicating the result of the most recent SQL statement. SQLCODE = 0 means success, positive values indicate warnings (100 = not found), and negative values indicate errors (-805 = plan not found, -911 = deadlock/timeout, -818 = timestamp mismatch). (Ch. 27, Ch. 28)

SSA (Segment Search Argument) — In IMS DL/I calls, a parameter that identifies which segment type to access and optionally specifies qualification criteria (analogous to a WHERE clause in SQL). (Ch. 31) See also: DL/I, Segment, IMS.

SSRANGE — An Enterprise COBOL compiler option that generates runtime checks for subscript out-of-range and reference modification out-of-range conditions. Essential for debugging; typically disabled in production for performance. (Ch. 10, Ch. 33) See also: Defensive Programming, Compiler Option.

Static Analysis — The examination of source code without executing it, to detect potential errors, enforce coding standards, and assess complexity. Tools for COBOL static analysis include IBM Application Discovery, SonarQube with COBOL plugins, and COBOL-specific lint utilities. (Ch. 35) See also: Code Review.

Static Call — A CALL statement resolved at link-edit time, where the called subprogram is bound into the same load module as the caller. Provides faster invocation but requires re-linking when the subprogram changes. (Ch. 22) See also: Dynamic Call, NODYNAM.

Strangler Pattern — A modernization strategy (named by Martin Fowler) in which legacy functionality is gradually replaced by new implementations. New features are built in the target architecture, and traffic is progressively routed away from the legacy system until it can be decommissioned. (Ch. 37, Ch. 40) See also: Modernization, Migration.

STRING — A COBOL statement that concatenates the contents of multiple data items into a single data item, using a DELIMITED BY phrase to control how much of each source item is included. (Ch. 17) See also: UNSTRING, INSPECT, Reference Modification.

Subprogram — A COBOL program designed to be invoked by another program via a CALL statement. Subprograms receive parameters through the Linkage Section and the USING clause of the PROCEDURE DIVISION header. (Ch. 22, Ch. 23) See also: CALL, Linkage Section, BY REFERENCE.

Symbolic Map — A COBOL copybook generated from a BMS map definition. Contains the data structure (field names, lengths, attributes) that the COBOL program uses to send and receive screen data. (Ch. 29) See also: BMS, Map, Physical Map.

SYSOUT — A JCL DD parameter that directs output to the JES spool for printing or viewing. COBOL DISPLAY statements in batch write to the file assigned to SYSOUT (typically DD name SYSOUT or the system-defined output). (Ch. 2, Appendix C) See also: JES, Spool.


T

Table Handling — The set of COBOL features for working with arrays (tables): OCCURS, INDEXED BY, SEARCH, SEARCH ALL, subscripting, and indexing. Tables can be fixed-length or variable-length (OCCURS DEPENDING ON). (Ch. 18) See also: OCCURS, SEARCH, SEARCH ALL, Index.

Task — In CICS, a unit of work created to process a transaction. Each task has its own storage, program counter, and execution context. Multiple tasks may be executing concurrently in a CICS region. (Ch. 29) See also: Transaction, CICS.

Transaction — (1) In CICS, a named unit of work initiated by a 1–4 character transaction identifier. When a user enters a transaction ID, CICS creates a task to execute the associated program. (2) In database terms, a logical unit of work bounded by commit and rollback points. (Ch. 29, Ch. 32) See also: Task, CICS, Commit, Syncpoint.

TSO (Time Sharing Option) — The interactive component of z/OS that provides a command-line environment for users. TSO commands can be issued from the TSO READY prompt or through ISPF. Used for dataset management, program compilation, and job submission. (Ch. 2) See also: ISPF, SDSF.


U

Unit Testing — Testing individual COBOL programs or paragraphs in isolation, verifying that specific inputs produce expected outputs. COBOL unit testing frameworks include IBM zUnit (part of IDz), COBOL-Check, and custom harness approaches. (Ch. 34) See also: Integration Testing, Test Harness.

UNSTRING — A COBOL statement that splits a single data item into multiple receiving fields based on delimiter characters. The counterpart to STRING. Supports DELIMITER IN, COUNT IN, and POINTER clauses for precise control. (Ch. 17) See also: STRING, INSPECT.

USAGE — A COBOL clause that specifies the internal representation of a data item: DISPLAY (zoned decimal), COMP/BINARY (binary), COMP-3/PACKED-DECIMAL, COMP-1 (single float), COMP-2 (double float), POINTER, INDEX, etc. (Ch. 5) See also: COMP, COMP-3, DISPLAY, PICTURE.

USE AFTER — A COBOL declarative statement (coded in the DECLARATIVES section) that specifies a procedure to be invoked automatically after an I/O error on a specified file or category of files. (Ch. 10, Ch. 14) See also: DECLARATIVES, File Status.


V

Volume — A physical or logical unit of storage on z/OS (e.g., a DASD volume). Datasets are allocated on volumes, and the catalog records which volumes contain which datasets. (Ch. 2) See also: DASD, Dataset.

VSAM (Virtual Storage Access Method) — IBM's high-performance access method for z/OS datasets. VSAM supports three primary organizations: KSDS, ESDS, and RRDS. VSAM provides buffering, index management, and free-space management. COBOL programs access VSAM datasets through standard I/O statements (READ, WRITE, REWRITE, DELETE) with indexed or relative organization. (Ch. 12, Ch. 13, Ch. 14, Appendix E) See also: KSDS, ESDS, RRDS, IDCAMS, Control Interval.


W

Working-Storage Section — The section of the COBOL Data Division that defines data items whose values persist for the life of the program (or the run unit). In CICS, each task gets its own copy of working-storage. Contrast with Local-Storage Section, which is re-initialized on each invocation. (Ch. 3) See also: Local-Storage Section, Linkage Section.


X

XML GENERATE — A COBOL statement (Enterprise COBOL 4.2+) that converts a COBOL data structure into XML text. Used for data exchange with systems that consume XML. (Ch. 39) See also: XML PARSE, JSON GENERATE.

XML PARSE — A COBOL statement that parses XML text and invokes a processing procedure for each XML event (start-of-element, content, end-of-element, etc.). Supports SAX-style (event-driven) XML processing. (Ch. 39) See also: XML GENERATE.


Z

z/OS — IBM's flagship mainframe operating system (formerly OS/390, MVS). z/OS provides the runtime environment for COBOL batch and online programs, along with subsystems such as DB2, CICS, IMS, JES, and UNIX System Services. (Ch. 1, Ch. 2)

z/OS Connect — An IBM product that enables z/OS-based assets (COBOL programs, CICS transactions, IMS transactions, DB2 stored procedures) to be accessed as RESTful APIs. Provides API mapping, data transformation, and API management capabilities. (Ch. 39, Ch. 40) See also: REST, API Wrapping.

z/OS Debugger — The current name for IBM's interactive debugging tool for z/OS (formerly Debug Tool). Supports COBOL, PL/I, C/C++, and assembler debugging in batch, TSO, CICS, IMS, and DB2 stored procedure environments. (Ch. 33) See also: Debug Tool, Debugging.

Zoned Decimal — The DISPLAY (default) numeric representation in COBOL, where each digit occupies one byte. The sign is embedded in the zone portion of the last byte (C for positive, D for negative in EBCDIC). Also called "external decimal." (Ch. 5) See also: DISPLAY, PACKED-DECIMAL, COMP.


Numeric & Symbolic

88 Level (Condition Name) — A special level number that defines named conditions associated with the values of a data item. Testing an 88-level condition name in an IF or EVALUATE statement is more readable than testing the data item's value directly. SET condition-name TO TRUE assigns the first VALUE to the parent item. (Ch. 4, Ch. 6) See also: Level Number, SET.


This glossary covers over 200 terms used throughout Intermediate COBOL: Beyond the Basics. For additional COBOL reserved words, see Appendix D. For JCL-specific terminology, see Appendix C. For VSAM-specific concepts, see Appendix E.