Module lessons (1/2)
Paragraphs and PERFORM
In COBOL, modularity and logical structuring of code inside the PROCEDURE DIVISION do not occur via functions or methods, but rather through Paragraphs and the PERFORM statement.
Defining Paragraphs
A paragraph is a labeled section of code starting with a name at column 8 (Area A) ending with a period ., followed by a sequence of instructions at column 12 (Area B).
DISPLAY-MESSAGE.
DISPLAY "This is a paragraph!".
Paragraphs allow splitting potentially very long programs into reusable and self-documenting blocks.
Executing Paragraphs with PERFORM
The PERFORM statement invokes and executes a paragraph, then returns control to the instruction immediately following the PERFORM statement.
PROCEDURE DIVISION.
MAIN-PROCEDURE.
DISPLAY "Starting program...".
PERFORM PROCESS-DATA.
DISPLAY "Ending program.".
STOP RUN.
PROCESS-DATA.
DISPLAY "Processing data in memory...".
In the above listing:
- The
DISPLAYinsideMAIN-PROCEDUREis executed. PERFORM PROCESS-DATAbranches execution to thePROCESS-DATAparagraph.- Once the
PROCESS-DATAparagraph ends, execution returns toMAIN-PROCEDUREto print "Ending program." and halt usingSTOP RUN..
Try it yourself
Define a paragraph named DISPLAY-TOTAL that prints 'TOTAL IS DONE' using DISPLAY, and call it inside MAIN-PROCEDURE using PERFORM before stopping the program.
Show hint
Write PERFORM DISPLAY-TOTAL. at column 12, and below the MAIN-PROCEDURE block declare the DISPLAY-TOTAL. paragraph at column 8.
Solution available after 3 attempts
Call two paragraphs sequentially, first INITIALIZE-DATA and then PROCESS-DATA, within the MAIN-PROCEDURE block.
Show hint
Insert the two PERFORM statements in sequential order at column 12.
Solution available after 3 attempts