Further Reading — Chapter 22: CALL and Subprogram Linkage
IBM Official Documentation
-
Enterprise COBOL for z/OS: Programming Guide — Chapter on "Calling and sharing data between programs." The definitive reference for CALL behavior, parameter passing, and linkage editor integration on z/OS. Available on the IBM Documentation website.
-
z/OS MVS Program Management: User's Guide and Reference — Covers the binder (linkage editor), load module formats, and the runtime program loading process in detail. Essential reading for understanding what happens between compilation and execution.
-
Language Environment Programming Reference — Documents the runtime support for inter-language communication, save area conventions, and condition handling across CALL boundaries.
Textbooks and Guides
-
Stern, Stern, and Ley, COBOL for the 21st Century, 11th Edition — Chapter 14 covers subprograms and the CALL statement with clear examples suitable for intermediate learners.
-
Murach, Mike, Murach's Mainframe COBOL, 2nd Edition — Chapters 17-18 provide an excellent practical treatment of subprogram design with real-world patterns. The section on copybook-based interfaces is particularly strong.
-
Coughlan, Michael, Beginning COBOL for Programmers — Chapter 15 offers a concise treatment of subprogram linkage with GnuCOBOL-compatible examples for students without mainframe access.
GnuCOBOL Resources
-
GnuCOBOL Programmer's Guide — Section on "Inter-Program Communication" covers CALL behavior in GnuCOBOL, including differences from IBM Enterprise COBOL. Available at https://gnucobol.sourceforge.io/
-
GnuCOBOL FAQ — Includes specific guidance on compiling and linking subprograms, static vs. shared library linking, and C interoperability.
Architecture and Design
-
Martin, Robert C., Clean Architecture — While not COBOL-specific, the principles of component cohesion and coupling apply directly to COBOL modular design. The Stable Dependencies Principle and the Stable Abstractions Principle inform how to structure subprogram libraries.
-
Parnas, David L., "On the Criteria To Be Used in Decomposing Systems into Modules" (1972) — The foundational paper on modular decomposition. Its principles — information hiding and separation of concerns — are exactly what COBOL subprogram design achieves.
Mainframe Modernization
-
Trowbridge, David, et al., Integration Patterns: Integrating Legacy Systems — Discusses strategies for wrapping COBOL subprograms as services, which builds directly on the CALL and linkage concepts from this chapter.
-
IBM Redbooks: "Batch Modernization on z/OS" — Covers how modular COBOL batch programs can be incrementally modernized using techniques that depend on clean subprogram interfaces.
Online Resources
-
IBM Z Xplore (https://www.ibm.com/z/resources/zxplore) — Free learning platform where you can practice compiling, link-editing, and running COBOL subprograms on a real z/OS system.
-
COBOL Programming Course (https://github.com/openmainframeproject/cobol-programming-course) — Open Mainframe Project's free COBOL course includes modules on subprogram development.