Chapter 7: Conditional Logic -- Further Reading
Books
"Murach's Mainframe COBOL" by Mike Murach and Associates This book provides an exceptionally clear treatment of COBOL conditional logic, with side-by-side comparisons of legacy period-delimited IF statements and modern END-IF scoped constructs. The chapters on structured programming show how to replace deeply nested IF blocks with EVALUATE and well-organized paragraph structure. Available from the Murach website and major technical booksellers.
"Enterprise COBOL for z/OS: A First Course" by Robert C. Cain Cain's textbook devotes significant attention to EVALUATE as a decision table mechanism, including multi-subject EVALUATE forms that are rarely covered in introductory texts. The exercises require readers to translate complex business rules into EVALUATE structures, which is excellent practice for real-world mainframe development. Search for this title through university bookstores or technical publishers.
"COBOL Unleashed" by Jon Wessler This comprehensive reference includes an entire section on advanced conditional logic patterns, including the use of 88-level condition names in file-processing loops and status-code checking. The discussion of how 88-levels interact with REDEFINES and group items is particularly valuable. Available through major online booksellers and some technical libraries.
Online Resources
IBM Enterprise COBOL Language Reference -- Conditional Expressions The definitive reference for conditional expression syntax in Enterprise COBOL for z/OS. This section of the language reference covers every permissible form of relation condition, class condition, sign condition, condition-name condition, and combined condition with precise syntax diagrams. Search for "Enterprise COBOL Language Reference" on the IBM Documentation website and navigate to the Conditional Expressions section.
IBM Enterprise COBOL Programming Guide -- Making Decisions The programming guide complements the language reference with practical guidance on writing conditional logic. It includes recommendations for structuring EVALUATE statements, guidance on when to use EVALUATE TRUE versus EVALUATE on a data item, and examples of multi-subject EVALUATE. Find this in the IBM Documentation portal under the Enterprise COBOL Programming Guide.
GnuCOBOL FAQ and Programmer's Guide -- Conditional Statements For programmers learning COBOL on open-source platforms, the GnuCOBOL documentation provides helpful examples of IF, EVALUATE, and 88-level condition names with notes on any behavioral differences from IBM Enterprise COBOL. The GnuCOBOL project is hosted on SourceForge, and the programmer's guide is available through the project's documentation pages.
IBM Documentation
"Enterprise COBOL for z/OS: Migration Guide" The migration guide is valuable for understanding how conditional logic has evolved across COBOL standards. It documents the transition from period-scoped IF statements in COBOL-74 to END-IF in COBOL-85, and the introduction of EVALUATE in COBOL-85. Understanding this history helps when reading and modernizing legacy code. Available on the IBM Documentation website under Enterprise COBOL publications.
IBM Redbook: "COBOL and CICS: A Practical Approach" While focused on CICS transaction processing, this Redbook contains excellent examples of using EVALUATE with CICS EIBRESP codes and 88-level condition names for CICS response handling. It demonstrates how conditional logic is applied in real transaction-processing environments. Search for this title on the IBM Redbooks website.
Standards and Specifications
ISO/IEC 1989:2023 -- COBOL Standard The current COBOL standard defines the formal specification for conditional statements, including IF, EVALUATE, and condition-name conditions. While the standard is dense reading, it is the authoritative source for understanding exactly how conditions are evaluated, how operator precedence works, and what constitutes a valid conditional expression. Available for purchase through ISO or national standards bodies such as ANSI.
"COBOL-85 Standard (ANSI X3.23-1985)" -- Historical Reference The COBOL-85 standard was the revision that introduced both END-IF and EVALUATE to the language, fundamentally changing how COBOL programmers write conditional logic. Reading the rationale sections of this standard helps explain why these features were added and what problems they were designed to solve. Available through technical libraries and standards archives.
"Structured Programming in COBOL" by Paul Noll This classic guide focuses on applying structured programming principles to COBOL, with extensive discussion of how to use IF/ELSE/END-IF and EVALUATE to eliminate GO TO statements and create maintainable code. The section on converting spaghetti logic into structured conditionals remains highly relevant for programmers maintaining legacy systems. Search for this title through used technical bookstores or online archives of COBOL educational materials.