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.