Menu

COBOL - Procedure Division


A PROCEDURE DIVISION consiste em uma série de procedimentos chamados parágrafos, cada um destinado a desempenhar uma função específica.

Um parágrafo consiste em um nome de parágrafo codificado na Área A e uma série de instruções de procedimento projetadas para executar uma função desejada codificada na Área B.

Os Procedures frequently executam outros procedimentos conforme indicado no exemplo a seguir:

0000-MAIN-PARA.
       PERFORM 1000-INITIALIZE-PARA
          THRU 1000-EXIT.
       PERFORM 2000-MAIN-PARA
          THRU 2000-EXIT
         UNTIL END-OF-FILE.
       PERFORM 3000-END-PARA
          THRU 3000-EXIT.
       STOP RUN.

Observe o uso de pontuação no parágrafo anterior. Cada afirmação deve ser uma sentença, ou seja, deve terminar com um ponto, a menos que faça parte de uma sentença condicional.

As frases que são continuadas em várias linhas devem ser recuadas nas linhas seguintes. As frases que modificam o comportamento de uma instrução como UNTIL na instrução PERFORM devem ser codificadas em uma nova linha para que se destaquem.

Vamos ver como fica o programa COBOL se codificarmos todas as divisões.

IDENTIFICATION DIVISION.           ---> Identification division starts here
PROGRAM-ID. HELLOWRD.              ---> Identification division ends here

ENVIRONMENT DIVISION.              ---> Environment division starts here
CONFIGURATION SECTION.
SOURCE-COMPUTER. XXX-ZOS.
OBJECT-COMPUTER. XXX-ZOS.

INPUT-OUTPUT SECTION.
FILE-CONTROL.
   SELECT FILEN ASSIGN TO INPUT.
   ORGANIZATION IS SEQUENTIAL.
   ACCESS IS SEQUENTIAL.           ---> Environment division ends here

DATA DIVISION.                     ---> Data division starts here
FILE SECTION.
FD FILEN
01 NAME PIC A(25).

WORKING-STORAGE SECTION.
01 WS-STUDENT PIC A(30).
01 WS-ID PIC 9(5).

LOCAL-STORAGE SECTION.
01 LS-CLASS PIC 9(3).

LINKAGE SECTION.
01 LS-ID PIC 9(5).                ---> Data division ends here

PROCEDURE DIVISION.               ---> Procedure division starts here
   DISPLAY 'Executing COBOL program using JCL'.
   STOP RUN.                      ---> Procedure division ends here

Não precisa entender cada linha de código. Este exemplo, apenas para mostrar como o COBOL fica quando codificamos todas as divisões.