COBOL - Estrutura do Programa
A estrutura de um programa COBOL consiste em divisões, conforme mostrado na imagem a seguir -
Uma breve introdução dessas divisões é fornecida abaixo -
Sectionssão a subdivisão lógica da lógica do programa. Uma seção é uma coleção de parágrafos.
Paragraphssão a subdivisão de uma seção ou divisão. É um nome definido pelo usuário ou predefinido seguido por um ponto e consiste em zero ou mais sentenças / entradas.
Sentencessão a combinação de uma ou mais declarações. As sentenças aparecem apenas na divisão Procedimento. Uma frase deve terminar com um ponto final.
Statements são instruções COBOL significativas que executam algum processamento.
Characters são os mais baixos na hierarquia e não podem ser divisíveis.
Você pode co-relacionar os termos mencionados acima com o programa COBOL no seguinte exemplo -
PROCEDURE DIVISION.
A0000-FIRST-PARA SECTION.
FIRST-PARAGRAPH.
ACCEPT WS-ID - Statement-1 -----|
MOVE '10' TO WS-ID - Statement-2 |-- Sentence - 1
DISPLAY WS-ID - Statement-3 -----|
.
Divisões
Um programa COBOL consiste em quatro divisões.
Divisão de Identificação
É a primeira e única divisão obrigatória de todo programa COBOL. O programador e o compilador usam essa divisão para identificar o programa. Nesta divisão, PROGRAM-ID é o único parágrafo obrigatório. PROGRAM-ID especifica o nome do programa que pode consistir de 1 a 30 caracteres.
Experimente o seguinte exemplo usando o Live Demo opção online.
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
PROCEDURE DIVISION.
DISPLAY 'Welcome to Tutorialspoint'.
STOP RUN.
Dado abaixo é o JCL para executar o programa COBOL acima.
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = HELLO
Quando você compila e executa o programa acima, ele produz o seguinte resultado -
Welcome to Tutorialspoint
Divisão de Meio Ambiente
A divisão de ambiente é usada para especificar arquivos de entrada e saída para o programa. Consiste em duas seções -
Configuration sectionfornece informações sobre o sistema no qual o programa é escrito e executado. Consiste em dois parágrafos -
Computador de origem - Sistema usado para compilar o programa.
Computador objeto - Sistema usado para executar o programa.
Input-Output sectionfornece informações sobre os arquivos a serem usados no programa. Consiste em dois parágrafos -
Controle de arquivo - Fornece informações de conjuntos de dados externos usados no programa.
Controle IO - Fornece informações sobre os arquivos usados no programa.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. XXX-ZOS.
OBJECT-COMPUTER. XXX-ZOS.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT FILEN ASSIGN TO DDNAME
ORGANIZATION IS SEQUENTIAL.
Divisão de Dados
A divisão de dados é usada para definir as variáveis usadas no programa. Consiste em quatro seções -
File section é usado para definir a estrutura de registro do arquivo.
Working-Storage section é usado para declarar variáveis temporárias e estruturas de arquivo que são usadas no programa.
Local-Storage sectioné semelhante à seção Working-Storage. A única diferença é que as variáveis serão alocadas e inicializadas toda vez que um programa iniciar a execução.
Linkage section é usado para descrever os nomes de dados que são recebidos de um programa externo.
COBOL Program
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT FILEN ASSIGN TO INPUT.
ORGANIZATION IS SEQUENTIAL.
ACCESS IS SEQUENTIAL.
DATA DIVISION.
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).
PROCEDURE DIVISION.
DISPLAY 'Executing COBOL program using JCL'.
STOP RUN.
o JCL para executar o programa COBOL acima é o seguinte -
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = HELLO
//INPUT DD DSN = ABC.EFG.XYZ,DISP = SHR
Quando você compila e executa o programa acima, ele produz o seguinte resultado -
Executing COBOL program using JCL
Divisão de Procedimento
A divisão de procedimento é usada para incluir a lógica do programa. Consiste em instruções executáveis usando variáveis definidas na divisão de dados. Nesta divisão, os nomes dos parágrafos e seções são definidos pelo usuário.
Deve haver pelo menos uma instrução na divisão do procedimento. A última declaração para encerrar a execução nesta divisão éSTOP RUN que é usado nos programas de chamada ou EXIT PROGRAM que é usado nos programas chamados.
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-NAME PIC A(30).
01 WS-ID PIC 9(5) VALUE 12345.
PROCEDURE DIVISION.
A000-FIRST-PARA.
DISPLAY 'Hello World'.
MOVE 'TutorialsPoint' TO WS-NAME.
DISPLAY "My name is : "WS-NAME.
DISPLAY "My ID is : "WS-ID.
STOP RUN.
JCL para executar o programa COBOL acima -
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = HELLO
Quando você compila e executa o programa acima, ele produz o seguinte resultado -
Hello World
My name is : TutorialsPoint
My ID is : 12345