Hello World!


The traditional first example in any programming language is the "Hello world!" program. This program simply prints out the message "Hello world!".

       IDENTIFICATION DIVISION.
       PROGRAM-ID.  HELLO.
       AUTHOR.      BILL ROGERS.
       ENVIRONMENT DIVISION.
       DATA DIVISION.
       PROCEDURE DIVISION.
       MAINLINE.
           DISPLAY 'Hello world!'.
           STOP RUN.

Let's enhance the Hello program by letting it print a personalized hello message. Hello2 prompts for the user's name and then says hello. Note that this requires the addition of a data storage item (WS-NAME) in the Working-Storage Section of the Data Division.

       IDENTIFICATION DIVISION.
       PROGRAM-ID.  HELLO2.
       AUTHOR.      BILL ROGERS.
       ENVIRONMENT DIVISION.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 WS-NAME PIC X(25).
       PROCEDURE DIVISION.
       MAINLINE.
           DISPLAY 'Type your name: '.
           ACCEPT WS-NAME.
           DISPLAY 'Hello ' WS-NAME.
           STOP RUN.

Instead of prompting for a name with the ACCEPT statement, let's read a name from a file. In Hello3 note the definition of the data file NAME.TXT in the File-Control paragraph of the Input-Output Section of the Environment Divison. Note also the addition of a File Desciption in the File Section of the Data Division. In the Procedure Division statements have been added to Open, Read, and Close the data file.

       IDENTIFICATION DIVISION.
       PROGRAM-ID.  HELLO3.
       AUTHOR.      BILL ROGERS.
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT IN-FILE ASSIGN TO 'A:\NAME.TXT'
                  ORGANIZATION IS LINE SEQUENTIAL.
       DATA DIVISION.
       FILE SECTION.
       FD IN-FILE
          RECORD CONTAINS 25 CHARACTERS.
       01 IN-RECORD.
          05 IN-NAME PIC X(25).
       WORKING-STORAGE SECTION.
       01 END-OF-FILE-FLAG PIC X.
       PROCEDURE DIVISION.
       MAINLINE.
           OPEN INPUT IN-FILE.
           READ IN-FILE
                AT END MOVE 'Y' TO END-OF-FILE-FLAG.
           DISPLAY 'Hello ' IN-NAME.
           CLOSE IN-FILE.
           STOP RUN.

The next version of the program reads a data file with multiple records. A loop is used to read the file one record at a time.

       IDENTIFICATION DIVISION.
       PROGRAM-ID.  HELLO4.
       AUTHOR.      BILL ROGERS.
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT IN-FILE ASSIGN TO 'A:\NAMES.TXT'
                  ORGANIZATION IS LINE SEQUENTIAL.
       DATA DIVISION.
       FILE SECTION.
       FD IN-FILE
          RECORD CONTAINS 25 CHARACTERS.
       01 IN-RECORD.
          05 IN-NAME PIC X(25).
       WORKING-STORAGE SECTION.
       01 END-OF-FILE-FLAG PIC X.
       PROCEDURE DIVISION.
       MAINLINE.
           PERFORM INITIALIZATION-ROUTINE.
           PERFORM THE-LOOP
                   UNTIL END-OF-FILE-FLAG = 'Y'.
           PERFORM EOJ-ROUTINE.
           STOP RUN.

       INITIALIZATION-ROUTINE.
           OPEN INPUT IN-FILE.
           READ IN-FILE
                AT END MOVE 'Y' TO END-OF-FILE-FLAG.

       THE-LOOP.
           DISPLAY 'Hello ' IN-NAME.
           READ IN-FILE
                AT END MOVE 'Y' TO END-OF-FILE-FLAG.

       EOJ-ROUTINE.
           CLOSE IN-FILE.


Cobol Home