Exercise 1: Why PROGRAM-ID Needs Area A but DISPLAY Needs Area B — Possible Solution ==================================================================== This chapter's own real column-layout table draws a direct line between what kind of line something is and which of the two real code areas it must start in. WHAT AREA A IS ACTUALLY FOR This chapter states that Area A (columns 8-11) is reserved specifically for DIVISION and SECTION headers, procedure (paragraph) headers, and 01/77-level items. PROGRAM-ID is a real, required entry inside the IDENTIFICATION DIVISION - it functions as a structural header-like declaration that names the program itself, which is exactly the category of entry this chapter identifies as belonging in Area A. WHAT AREA B IS ACTUALLY FOR This chapter states plainly that Area B (columns 12-72) is for "everything else" - specifically including every PROCEDURE DIVISION statement. DISPLAY WS-GREETING. is an executable statement, not a structural header - it's an instruction telling the program to do something (display a value), which places it squarely in the "everything else" category this chapter assigns to Area B. WHY THIS ISN'T AN ARBITRARY RULE This distinction reflects a genuine, real structural difference: Area A entries define the shape and organization of the program itself (what divisions exist, what data items are being declared at the top level, what paragraphs exist to be run), while Area B entries carry out actual work within that structure. Keeping structural declarations visually distinct from executable instructions, via a fixed column rule, was a real, deliberate design choice inherited from COBOL's own punch-card era. WHY THIS MATTERS IN PRACTICE Getting this wrong genuinely matters in real fixed-format COBOL - a DIVISION header starting in the wrong column, or a DISPLAY statement starting too far left, would be a real compilation error, not merely a stylistic issue, precisely because the compiler uses column position itself to determine what kind of line it's reading. ANSWER: PROGRAM-ID must start in Area A because it's a structural, header-like declaration - the specific category of entry (division headers, section headers, paragraph headers, 01/77-level items) this chapter identifies as belonging there. DISPLAY WS-GREETING. must start in Area B because it's an executable PROCEDURE DIVISION statement - an instruction carrying out actual work, which this chapter places in the "everything else" category Area B is reserved for. This reflects a real, deliberate structural separation between declaring a program's shape and executing its actual logic. WHY THIS WORKS AS AN ANSWER ------------------------------ This correctly classifies each specific line against the chapter's own stated Area A/Area B categories, and explains the underlying structural reasoning (declaration vs. execution) rather than simply restating the column numbers.