Further Reading — Chapter 7: Iteration Patterns
Books
-
Stern, N., Stern, R., & Ley, J. (2006). COBOL for the 21st Century (11th ed.). Wiley. Chapter 6 covers PERFORM in all its forms with clear diagrams showing TEST BEFORE/AFTER behavior. The batch processing examples are particularly relevant.
-
Murach, M. (2020). Murach's Mainframe COBOL. Murach. Chapter 6 provides a practical treatment of PERFORM patterns with an emphasis on production coding standards.
-
Knuth, D. (1997). The Art of Computer Programming, Volume 1: Fundamental Algorithms (3rd ed.). Addison-Wesley. While not COBOL-specific, Knuth's treatment of loop invariants and termination proofs provides the theoretical foundation for understanding why defensive loop programming matters.
IBM Documentation
-
IBM Enterprise COBOL for z/OS Language Reference (SC27-1408). Section 7.36 (PERFORM statement) is the authoritative reference for all PERFORM forms, including the exact semantics of TEST BEFORE/AFTER and VARYING counter behavior.
-
IBM Enterprise COBOL for z/OS Programming Guide (SC27-1412). The performance tuning chapter includes recommendations for optimizing PERFORM loops, including index usage vs. subscript usage.
-
IBM Enterprise COBOL for z/OS Migration Guide (GC27-1409). Covers EXIT PERFORM and EXIT PERFORM CYCLE compatibility across compiler versions.
Articles and Papers
-
Bohm, C., & Jacopini, G. (1966). "Flow Diagrams, Turing Machines and Languages with Only Two Formation Rules." Communications of the ACM, 9(5), 366-371. The seminal paper proving that any algorithm can be expressed using only sequence, selection, and iteration — the theoretical justification for structured programming with PERFORM.
-
Mills, H. D. (1972). "Mathematical Foundations for Structured Programming." IBM Technical Report FSC 72-6012. Harlan Mills' application of the Bohm-Jacopini theorem to practical programming, which directly influenced COBOL structured programming practices.
Online Resources
-
IBM Z Xplore (https://www.ibm.com/it-infrastructure/z/education/zxplore) The COBOL challenges include exercises on PERFORM VARYING and sequential file processing. Excellent for practicing the priming read pattern.
-
GnuCOBOL FAQ and Samples (https://gnucobol.sourceforge.io/faq/index.html) Includes working examples of EXIT PERFORM and EXIT PERFORM CYCLE for students using GnuCOBOL.
Related Chapters in This Textbook
- Chapter 6: Advanced Conditional Logic — Conditional expressions used in PERFORM UNTIL conditions and within loop bodies.
- Chapter 8: Paragraph and Section Design — How to design paragraphs that are performed by loops — naming, cohesion, and the PERFORM THRU debate.
- Chapter 11: Table Handling Fundamentals — PERFORM VARYING is the primary mechanism for table traversal; SEARCH provides an alternative.
- Chapter 12: Advanced Table Processing — Binary search, SEARCH ALL, and multi-dimensional table patterns.
- Chapter 14: Sequential File Processing — The priming read pattern in full production context with multiple input files and control breaks.