Program Structure


COBOL programming language has its program structure, like other programming languages, and it should apply to every program written in the COBOL language.

COBOL program structure is a top-to-bottom hierarchical design, consisting of Divisions, Sections, Paragraphs, Sentences, Statements, and Character strings.

Let us discuss from the smaller element to the larger one for a better understanding.

Character Set -


  • Character set refers to the collection of valid characters that can be used within the language.
  • It is used to define literals, variables, and other identifiers in a COBOL program.

We have discussed this verb in the previous topic.

Character Strings -


  • Character strings are sequences of characters that consist of letters, digits, spaces, and special characters.
  • They are also known as literals, variables, keywords, etc.
  • For example - WS-VAR, ZEROES, MOVE, IF, DISPLAY, etc.

Statements -


  • A COBOL statement is a combination of COBOL keywords and operands. It's important to note that a statement should always include at least one COBOL keyword, as these keywords are the building blocks of the COBOL programming language.
  • Statements decide the program's flow, data manipulations, input/output operations, etc.
  • All statements should code in Area-B of the PROCEDURE DIVISION.
  • All statements should mark with a explicit scope terminator (period - .) at the end.
  • COBOL statements are divided into four types based on their usage, and those are -
    • Imperative Statements
    • Conditional Statements
    • Delimited scope Statements
    • Compiler directing Statements

For example - Two statements in a program.

----+----1----+----2----+----3----+----4----+----5
       IDENTIFICATION DIVISION.
       PROGRAM-ID. PROGSTRU.
	   AUTHOR. MTH.

       PROCEDURE DIVISION.
       1000-SEC1 SECTION.
       1000-PARA.
           DISPLAY "Hello World".      --> Statement1    
           DISPLAY "Welcome to MTH".   --> Statement2          
           STOP RUN.

Sentences -


  • A sentence is a sequence of two or more statements ended by a period (.).
  • It provides a way to group related statements together, and the explicit scope terminator (period) indicates the end of the sentence.
  • If the first statement ends with a period, it is considered a statement but not a sentence.
  • All sentences should be coded in Area B of the PROCEDURE DIVISION.

For example - A sentence with two statements.

----+----1----+----2----+----3----+----4----+----5
       IDENTIFICATION DIVISION.
       PROGRAM-ID. PROGSTRU.
	   AUTHOR. MTH.

       PROCEDURE DIVISION.
       1000-SEC1 SECTION.
       1000-PARA.
           DISPLAY "Hello World"       --|   
           DISPLAY "Welcome to MTH".   --|--> Sentence          
           STOP RUN.

Paragraphs -


  • A paragraph is a block of code consisting of one or more sentences or statements.
  • It represents a logical code unit and can be called or performed by other parts of the program.
  • A paragraph coding begins with the paragraph name and ends when any of the following meets -
    • Scope terminator of the same paragraph.
    • Starting of another paragraph.
    • Beginning of the new section.
    • The program ends.
  • All paragraph names should be coded in Area A, and its code should be in Area B.

For example - A paragraph in the program.

----+----1----+----2----+----3----+----4----+----5
       IDENTIFICATION DIVISION.
       PROGRAM-ID. PROGSTRU.
	   AUTHOR. MTH.

       PROCEDURE DIVISION.
       1000-SEC1 SECTION.
       1000-PARA.                --> Paragraph
           DISPLAY "Hello World" 
           DISPLAY "Welcome to MTH".         
           STOP RUN.

Sections -


  • A section is a collection of one or more related paragraphs within the PROCEDURE DIVISION.
  • Sections are coded by a name followed by the keyword SECTION. It ends at another section starting or ending the program.
  • When the section is called in the program, it executes all its paragraphs sequentially.
  • All section names should be coded in Area A and their code in Area B.

For example - Sections in the program.

----+----1----+----2----+----3----+----4----+----5
       IDENTIFICATION DIVISION.
       PROGRAM-ID. PROGSTRU.
	   AUTHOR. MTH.

       PROCEDURE DIVISION.
       1000-SEC1 SECTION.     --> Section
       1000-PARA.
           DISPLAY "Hello World" 
           DISPLAY "Welcome to MTH".
           STOP RUN.

Divisions -


  • A division is a collection of one or more sections and paragraphs.
  • Division begins with the division name and ends at the beginning of the subsequent division or the program ends.
  • All divisions are system-defined and should begin in Area A.
  • COBOL has four divisions and those are -
    • IDENTIFICATION DIVISION (program metadata).
    • ENVIRONMENT DIVISION (configuration and I/O specifications).
    • DATA DIVISION (data definition).
    • PROCEDURE DIVISION (program logic).

For example - Sections in the program.

----+----1----+----2----+----3----+----4----+----5
       IDENTIFICATION DIVISION.  --> Division
       PROGRAM-ID. PROGSTRU.
	   AUTHOR. MTH.

       PROCEDURE DIVISION.       --> Division
       1000-SEC1 SECTION.
       1000-PARA.
           DISPLAY "Hello World" 
           DISPLAY "Welcome to MTH".         
           STOP RUN.

Syntactical Hierarchy -


Each division has its own set of elements, and the syntactical hierarchy is shown below -