Modernization Hub

Host Language

Enhanced Definition

Key Characteristics

    • Integration with Data Systems: Designed to embed database commands (e.g., EXEC SQL for DB2, CALL 'CBLTDLI' for IMS) or transaction management APIs (e.g., EXEC CICS) directly within its source code.
    • Precompilation/Coprocessing: Requires a specific precompiler or coprocessor (e.g., DB2 coprocessor for COBOL) to translate the embedded database/CICS statements into standard host language calls before the program can be compiled by the standard compiler.
    • Common Mainframe Examples: Primarily COBOL, PL/I, and Assembler, but also C/C++ are frequently used as host languages on z/OS for application development.
    • Data Manipulation and Business Logic: Handles complex business rules, data processing, and user interface logic, while delegating data storage and retrieval to the underlying DBMS.
    • Host Variables: Utilizes program variables (known as host variables) to pass data between the application program and the database system, enabling dynamic data exchange.

Use Cases

    • Batch Data Processing: Writing batch COBOL or PL/I programs to process large volumes of data stored in DB2 or IMS databases, performing updates, reports, or data migrations.
    • Online Transaction Processing (OLTP): Developing CICS applications in COBOL or PL/I that interact with end-users, access DB2 or IMS databases, and perform rapid, high-volume transactions.
    • IMS Transaction Manager Applications: Creating IMS DC applications using COBOL or Assembler to handle messages from terminals and interact with IMS databases for business logic execution.
    • System Utilities and Tools: Building custom utilities or specialized reporting tools that require programmatic access to system data or databases for administration, monitoring, or specific data analysis.

Related Concepts

A host language is foundational for application development on z/OS, acting as the bridge between business logic and data persistence. It works in conjunction with a DBMS (like DB2 or IMS) by embedding its specific data manipulation language (e.g., SQL for DB2, DL/I for IMS). The embedded statements are processed by a precompiler or coprocessor, which converts them into standard host language calls that the compiler can understand. This compiled code then interacts with the respective DBMS runtime libraries. For online systems, a host language program often runs under a transaction manager like CICS or IMS DC, which provides the execution environment and manages transaction integrity.

Best Practices: