Further Reading — Chapter 23: Parameter Passing Patterns

IBM Official Documentation

  • Enterprise COBOL for z/OS: Programming Guide — "Passing data" — The definitive reference for BY REFERENCE, BY CONTENT, and BY VALUE semantics in IBM Enterprise COBOL. Includes details on data type compatibility and size requirements for each mode.

  • Enterprise COBOL for z/OS: Language Reference — "CALL statement" — Formal syntax and rules for the CALL statement, including RETURNING, ON EXCEPTION, and parameter passing clauses.

  • Language Environment Programming Guide — "Interlanguage Communication" — Essential reading for COBOL-to-C and COBOL-to-Java parameter passing. Covers data type mapping, calling conventions, and common pitfalls.

  • z/OS Language Environment Runtime Messages — Reference for runtime errors related to parameter passing, including CEE3207S (parameter list mismatch) and related diagnostics.

Textbooks

  • Murach, Mike, Murach's Mainframe COBOL, 2nd Edition — Chapter 18 covers parameter passing modes with practical examples. The treatment of BY CONTENT vs. BY REFERENCE is particularly clear for intermediate learners.

  • Stern, Stern, and Ley, COBOL for the 21st Century — Chapter 14 includes a thorough discussion of parameter passing with diagrams showing memory layout for each mode.

  • Cutler, Gary, GnuCOBOL Programmer's Guide — Sections on inter-program communication include GnuCOBOL-specific behavior for BY VALUE and C interoperability, useful for students using GnuCOBOL.

Error Handling and Return Codes

  • IBM Redbooks: "z/OS Basic Skills — System Return Codes" — Explains the relationship between COBOL return codes, JCL condition codes, and system completion codes. Essential context for understanding why the 0/4/8/12 convention exists.

  • IBM z/OS MVS JCL Reference — "COND parameter" — Documents how JCL uses return codes to control job step execution, providing the operational context for return code design.

Cross-Language Programming

  • IBM Redbooks: "Interfacing COBOL with Other Languages" — Comprehensive guide to calling C, C++, PL/I, and Java from COBOL and vice versa. Includes data type mapping tables and working examples.

  • IBM z/OS XL C/C++ Programming Guide — "Interlanguage calls" — The C perspective on calling COBOL subprograms, including parameter passing conventions and struct layout compatibility.

Design Patterns

  • Fowler, Martin, Patterns of Enterprise Application Architecture — While not COBOL-specific, patterns like Data Transfer Object, Gateway, and Service Layer directly inform COMMAREA and parameter block design.

  • Hohpe, Gregor and Woolf, Bobby, Enterprise Integration Patterns — The messaging patterns (Message, Message Channel, Pipes and Filters) have direct analogs in COBOL pipeline architectures like MedClaim's adjudication engine.

Online Resources

  • IBM Developer: "COBOL interoperability with Java" — Tutorial on calling COBOL from Java and Java from COBOL, building on BY VALUE parameter passing concepts from this chapter.

  • Open Mainframe Project — COBOL Programming Course — Modules on subprogram communication include exercises you can run on IBM Z Xplore or GnuCOBOL.

  • Enterprise COBOL Migration Guide — Documents changes in parameter passing behavior across Enterprise COBOL versions, useful when working with legacy code that may have been compiled under older compilers.