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.