Chapter 4: Further Reading -- The WORKING-STORAGE and LOCAL-STORAGE Sections
Books
"Murach's Mainframe COBOL" by Mike Murach & Associates The chapter on defining and initializing data items provides exceptional practical coverage of WORKING-STORAGE organization patterns. The book's treatment of the INITIALIZE statement, including its interaction with FILLER items and the REPLACING clause, is among the clearest available. The paired-pages format is especially effective for showing WORKING-STORAGE declarations on one page and their usage in the PROCEDURE DIVISION on the facing page. Look for the most recent edition from the publisher or major booksellers.
"Advanced COBOL for Structured and Object-Oriented Programming" by Gary DeWard Brown This intermediate-to-advanced text devotes significant attention to WORKING-STORAGE design patterns for large production programs. Its coverage of REDEFINES techniques for multi-format records, table initialization via REDEFINES, and the nuances of the SYNCHRONIZED clause goes well beyond introductory treatments. The book also discusses the performance implications of data item placement within WORKING-STORAGE on IBM mainframe systems. Available through used book sellers and some technical libraries.
"COBOL for the 21st Century" by Nancy Stern, Robert A. Stern, and James P. Ley This textbook provides an excellent structured progression from simple WORKING-STORAGE declarations through complex group items and table definitions. Its treatment of level numbers is particularly methodical, walking through the subordination rules with many examples and common error cases. The end-of-chapter exercises include data definition problems that build real skill with WORKING-STORAGE organization. Published by Wiley.
"COBOL Programming: A Structured Approach" by Abel, Goldberg, and Lund A classic text that emphasizes structured programming techniques as they apply to WORKING-STORAGE design. The chapters on data hierarchy design and naming conventions reflect the standards used in large financial institutions, providing practical guidance that goes beyond syntax into shop-level coding standards. While older, the principles of data organization it teaches remain directly applicable today. Available through used book sellers and academic libraries.
Online Resources
GnuCOBOL Programmer's Guide -- Data Division Chapter The GnuCOBOL documentation provides detailed information on LOCAL-STORAGE SECTION support, including how GnuCOBOL implements per-invocation reinitialization and the specific compiler version requirements. It also documents GnuCOBOL-specific behaviors around INITIALIZE, such as how INITIALIZE ALL TO VALUE interacts with different USAGE types. Essential reading for anyone implementing LOCAL-STORAGE patterns with GnuCOBOL. Available on the GnuCOBOL project site at SourceForge.
IBM Developer: "Best Practices for COBOL Data Definition" (article series) IBM's developer community has published multiple articles on WORKING-STORAGE optimization for mainframe environments. Topics include optimal field ordering for cache performance, the impact of SYNCHRONIZED on record sizes and I/O buffer alignment, and guidelines for choosing between WORKING-STORAGE and LOCAL-STORAGE in CICS programs. Search for "COBOL data definition best practices" on the IBM Developer website.
"COBOL Data Structures Explained" (various tutorial sites) Several educational websites provide interactive tutorials on COBOL level numbers, REDEFINES, and 88-level condition names. These visual, step-by-step walkthroughs are helpful for reinforcing the concepts from this chapter, especially for programmers who learn by doing. Search for "COBOL WORKING-STORAGE tutorial" or "COBOL level numbers explained" to find current resources. Mainframes.com and Tutorialspoint both maintain active COBOL sections.
IBM Documentation
"Enterprise COBOL for z/OS: Language Reference" -- DATA DIVISION Chapters (IBM publication) The Language Reference provides the authoritative specification for WORKING-STORAGE SECTION, LOCAL-STORAGE SECTION, level number rules, VALUE clause semantics, INITIALIZE statement behavior, REDEFINES rules, and SYNCHRONIZED clause effects. The section on INITIALIZE is particularly important because it precisely defines which data categories are affected and the order of initialization when REPLACING is used. Search for publication SC27-1408 on the IBM Knowledge Center.
"Enterprise COBOL for z/OS: Programming Guide" -- Working with Data Chapter (IBM publication) The Programming Guide provides practical guidance on data definition that goes beyond syntax. It covers topics such as how the compiler allocates memory for WORKING-STORAGE items, the runtime behavior of LOCAL-STORAGE allocation and deallocation, and the interaction between WORKING-STORAGE lifetime and the IS INITIAL clause on PROGRAM-ID. The section on reference modification and its relationship to group item addressing is also valuable. Search for SC27-1412 on the IBM Knowledge Center.
"Enterprise COBOL: Technical Reference Summary" (IBM Redbooks) IBM Redbooks occasionally publish concise reference cards that summarize COBOL data definition rules, level number semantics, and INITIALIZE behavior in tabular format. These make excellent desk references when you need to quickly verify a rule about REDEFINES restrictions, FILLER behavior with INITIALIZE, or the subordination rules for level numbers. Search for "Enterprise COBOL quick reference" on the IBM Redbooks website.
Standards and Historical References
ISO/IEC 1989:2014 -- Section 8.5: WORKING-STORAGE SECTION and Section 8.6: LOCAL-STORAGE SECTION The official COBOL standard defines the precise lifetime and initialization semantics of both storage sections. The LOCAL-STORAGE specification (new in COBOL-2002 and refined in COBOL-2014) is particularly important because different compilers have implemented slightly varying behaviors. The standard is the definitive source for resolving discrepancies. Available for purchase from ISO.
"Structured COBOL Programming" by Nancy Stern and Robert Stern (early editions) The early editions of this influential textbook (1970s-1980s) document the original rationale for the level-number system and the 77-level independent item. Reading how these features were designed and why they exist provides perspective on COBOL's data model that purely modern references may lack. The evolution from the original level-number rules through COBOL-85 refinements illustrates how the language balanced backward compatibility with modernization -- a tension that persists today. Available through university libraries and used book sellers.