Translate

Mostrar mensagens com a etiqueta DATA DIVISION. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta DATA DIVISION. Mostrar todas as mensagens

segunda-feira, 5 de fevereiro de 2007

Estrutura de um Programa COBOL

 

Bellacosa Mainframe e o esqueleto de um programa COBOL conheça sua estrutura

Estrutura de um Programa COBOL

O COBOL foi criado para desenvolver:

  • sistemas corporativos;

  • processamento batch;

  • aplicações financeiras;

  • sistemas bancários;

  • processamento online.

Uma das maiores características do COBOL é sua:

organização estrutural.

Os programas são divididos em:

  • DIVISIONs;

  • SECTIONs;

  • PARAGRAPHs;

  • STATEMENTs.

Isso torna o COBOL:

  • legível;

  • modular;

  • organizado;

  • ideal para sistemas gigantes no mainframe IBM Z.


Estrutura clássica de um programa COBOL

IDENTIFICATION DIVISION.
ENVIRONMENT DIVISION.
DATA DIVISION.
PROCEDURE DIVISION.

Fluxo lógico

DIVISION
   ↓
SECTION
   ↓
PARAGRAPH
   ↓
STATEMENTS

1. IDENTIFICATION DIVISION

Responsável pela:

identificação do programa.


Contém:

  • nome;

  • autor;

  • comentários;

  • versão.


Exemplo

IDENTIFICATION DIVISION.
PROGRAM-ID. CLIENTE.
AUTHOR. BELLACOSA.

2. ENVIRONMENT DIVISION

Define:

ambiente de execução.


Contém:

  • arquivos;

  • devices;

  • datasets;

  • configurações.


SECTIONs principais

CONFIGURATION SECTION
INPUT-OUTPUT SECTION

Exemplo

SELECT ARQCLI
ASSIGN TO CLIENTE.

3. DATA DIVISION

Define:

dados e variáveis.


SECTIONs mais usadas


FILE SECTION

Layouts de arquivos.


WORKING-STORAGE SECTION

Variáveis internas.


LINKAGE SECTION

Parâmetros recebidos.


LOCAL-STORAGE SECTION

Variáveis locais temporárias.


Exemplo

01 WS-NOME PIC X(30).
01 WS-SALDO PIC 9(9)V99.

4. PROCEDURE DIVISION

Contém:

toda lógica do programa.


Aqui ficam:

  • IF;

  • PERFORM;

  • READ;

  • WRITE;

  • COMPUTE;

  • loops;

  • regras negócio.


Exemplo

PROCEDURE DIVISION.

MAIN.
   DISPLAY 'OLA'.
   STOP RUN.

O que são SECTIONs?

SECTIONs são:

subdivisões dentro das DIVISIONs.


Exemplo

WORKING-STORAGE SECTION.

O que são PARAGRAPHs?

Blocos menores de lógica.


Exemplo

CALCULAR-JUROS.

O que são STATEMENTs?

São:

comandos COBOL executáveis.


Exemplos

MOVE
DISPLAY
IF
PERFORM
READ
WRITE
COMPUTE

Principais comandos COBOL


MOVE

Movimenta dados.

MOVE 100 TO WS-VALOR

DISPLAY

Mostra mensagens.

DISPLAY 'PROCESSANDO'

IF

Decisão lógica.

IF SALDO > 0

EVALUATE

Similar ao CASE.


PERFORM

Executa rotina/repetição.

PERFORM CALCULAR

READ

Lê arquivos.


WRITE

Grava registros.


REWRITE

Atualiza registro VSAM.


DELETE

Remove registro.


COMPUTE

Realiza cálculos.


CALL

Chama subprograma.


STOP RUN

Finaliza programa.


Tipos de programas COBOL


1. Programa Batch

Executado via:

  • JCL;

  • JES2;

  • scheduler.


Características

  • processamento lote;

  • arquivos;

  • relatórios;

  • milhões registros.


Fluxo típico

LER
 ↓
VALIDAR
 ↓
PROCESSAR
 ↓
GERAR RELATÓRIO

Exemplo JCL

//STEP1 EXEC PGM=COBPGM

2. Programa Online

Executado interativamente.

Muito usado em:

CICS.


Exemplos

  • caixa eletrônico;

  • consulta saldo;

  • PIX;

  • cartão.


Características

  • resposta rápida;

  • transacional;

  • online;

  • interação usuário.


Exemplo CICS

EXEC CICS SEND

3. Programa Aninhado (Nested Program)

Programa dentro de outro programa.


Exemplo

IDENTIFICATION DIVISION.
PROGRAM-ID. PAI.

IDENTIFICATION DIVISION.
PROGRAM-ID. FILHO.

Vantagens

  • encapsulamento;

  • compartilhamento variáveis.


Muito usado em COBOL moderno


4. Programa Recursivo

Programa que:

chama a si mesmo.


Exemplo

CALL 'PROG1'

dentro do próprio:

PROG1

Necessita:

RECURSIVE

Muito menos comum no COBOL tradicional


Exemplo

PROGRAM-ID. FAT RECURSIVE.

5. Subprograma

Programa chamado por outro programa.


Exemplo

CALL 'CALCSAL'

Muito comum em:

  • modularização;

  • regras compartilhadas.


6. Programa Conversacional

Muito usado em CICS.

Mantém “estado” entre telas.


O que é modularização?

Dividir sistema em:

  • pequenos programas;

  • rotinas;

  • serviços.


Benefícios

  • manutenção;

  • reutilização;

  • organização.


O que é copybook?

Arquivo reutilizável.


Exemplo

COPY CLIENTE.

Muito usado para layouts


O que é PIC?

Define formato campo.


Exemplos

PIC X(20)

Texto.


PIC 9(5)

Número.


O que é COMP-3?

Formato numérico compactado.

Muito usado em:

processamento financeiro.


O que é EOF?

End Of-File

Fim do arquivo.


Exemplo loop batch

PERFORM UNTIL EOF='S'

Como COBOL aparece no dia a dia?

Praticamente em:

  • bancos;

  • PIX;

  • cartões;

  • folha salarial;

  • seguros;

  • faturamento.


Curiosidades incríveis

1. Muitos programas COBOL possuem milhões de linhas


2. Sistemas COBOL podem funcionar décadas sem parar


3. COBOL moderno suporta APIs e cloud


4. Mainframes executam bilhões de transações COBOL diariamente


Erros comuns de iniciantes


1. Misturar lógica e variáveis


2. Criar PROCEDURE DIVISION gigantes


3. Não modularizar


4. Usar GO TO excessivamente


Resumo rápido

EstruturaFunção
DIVISIONGrande bloco
SECTIONSubdivisão
PARAGRAPHBloco lógico
STATEMENTComando
BatchProcessamento lote
OnlineProcessamento interativo
RecursiveChama si mesmo
NestedPrograma aninhado

Conclusão

A estrutura do COBOL foi criada para suportar sistemas corporativos enormes com organização, estabilidade e clareza.

DIVISIONs, SECTIONs, PARAGRAPHs e STATEMENTs permitem criar programas batch e online altamente confiáveis, fundamentais para o ambiente mainframe IBM Z.

domingo, 4 de fevereiro de 2007

O que são as DIVISIONS e SECTIONs do COBOL?

 

Bellacosa o que as divisions e section num programa COBOL

O que são as DIVISIONS e SECTIONs do COBOL?

Uma das primeiras coisas que chama atenção em COBOL é sua estrutura extremamente organizada.

Diferente de muitas linguagens modernas, o COBOL divide o programa em:

  • DIVISIONs;

  • SECTIONs;

  • PARAGRAPHs.

Isso ajuda a criar programas:

  • organizados;

  • legíveis;

  • fáceis de manter.

Especialmente em sistemas corporativos gigantes do:

mainframe IBM Z.


O que são DIVISIONs?

DIVISIONs são:

grandes blocos principais do programa COBOL.

Cada DIVISION possui:

uma responsabilidade específica.


Estrutura clássica COBOL

IDENTIFICATION DIVISION
ENVIRONMENT DIVISION
DATA DIVISION
PROCEDURE DIVISION

Analogia simples

Imagine um prédio corporativo.

Cada andar possui uma função:

  • administração;

  • arquivos;

  • dados;

  • operações.

As DIVISIONs funcionam exatamente assim.


Fluxo lógico do COBOL

IDENTIFICATION
      ↓
ENVIRONMENT
      ↓
DATA
      ↓
PROCEDURE

1. IDENTIFICATION DIVISION

Responsável pela:

identificação do programa.


Contém informações como:

  • nome do programa;

  • autor;

  • comentários;

  • data.


Exemplo

IDENTIFICATION DIVISION.
PROGRAM-ID. CLIENTE.
AUTHOR. BELLACOSA.

O item mais importante

PROGRAM-ID

Define:

nome do programa COBOL.


2. ENVIRONMENT DIVISION

Define:

ambiente do programa.


Responsável por:

  • arquivos;

  • dispositivos;

  • configurações;

  • datasets.


Muito usada em batch


SECTIONs principais

CONFIGURATION SECTION
INPUT-OUTPUT SECTION

CONFIGURATION SECTION

Define:

  • máquina;

  • compilador;

  • ambiente.


Exemplo

CONFIGURATION SECTION.
SOURCE-COMPUTER. IBM-Z.
OBJECT-COMPUTER. IBM-Z.

INPUT-OUTPUT SECTION

Define:

arquivos do programa.


Exemplo

SELECT CLIENTE
ASSIGN TO ARQCLI.

3. DATA DIVISION

Uma das partes mais importantes.

Responsável pelos:

dados e variáveis.


Aqui ficam:

  • layouts;

  • variáveis;

  • tabelas;

  • áreas de memória;

  • copybooks.


SECTIONs mais famosas


FILE SECTION

Layouts de arquivos.


WORKING-STORAGE SECTION

Variáveis internas.


LINKAGE SECTION

Parâmetros recebidos.


Exemplo FILE SECTION

FD ARQCLIENTE.

01 REG-CLIENTE.
   05 NOME PIC X(30).
   05 SALDO PIC 9(9)V99.

O que é FD?

File Description

Define estrutura do arquivo.


Exemplo WORKING-STORAGE

01 WS-TOTAL PIC 9(9)V99.

O prefixo WS significa:

Working Storage.


Exemplo LINKAGE SECTION

01 LK-CLIENTE PIC X(10).

Muito usada em:

  • CALL;

  • subprogramas;

  • CICS.


O que é PIC?

Define formato do campo.


Exemplos

PIC X(20)

Texto.


PIC 9(5)

Número.


4. PROCEDURE DIVISION

Aqui fica:

a lógica do programa.


É o “cérebro” do COBOL.


Contém:

  • IF;

  • PERFORM;

  • READ;

  • WRITE;

  • COMPUTE;

  • loops;

  • processamento.


Exemplo

PROCEDURE DIVISION.

MAIN.
   DISPLAY 'OLA'.
   STOP RUN.

O que são SECTIONs?

SECTIONs são:

subdivisões dentro das DIVISIONs.


Elas organizam ainda mais o programa.


Exemplo

WORKING-STORAGE SECTION.

O que são PARAGRAPHs?

Pequenos blocos de lógica.


Exemplo

CALCULAR-TOTAL.

Hierarquia do COBOL

DIVISION
   ↓
SECTION
   ↓
PARAGRAPH
   ↓
STATEMENTS

Exemplo completo simplificado

IDENTIFICATION DIVISION.
PROGRAM-ID. TESTE.

DATA DIVISION.

WORKING-STORAGE SECTION.
01 WS-NOME PIC X(20).

PROCEDURE DIVISION.

MAIN.
   MOVE 'VAGNER' TO WS-NOME
   DISPLAY WS-NOME
   STOP RUN.

Como isso aparece no batch?

Muito comum:

READ ARQUIVO
 ↓
VALIDAR
 ↓
PROCESSAR
 ↓
WRITE RELATORIO

Tudo dentro da:

PROCEDURE DIVISION.


Como as DIVISIONs ajudam?

Elas tornam o código:

  • organizado;

  • modular;

  • legível;

  • padronizado.


Por que COBOL é tão organizado?

Porque foi criado para:

sistemas corporativos gigantes.


Grandes programas COBOL possuem:

  • milhares de linhas;

  • dezenas de SECTIONs;

  • centenas de PARAGRAPHs.


Curiosidades incríveis

1. O COBOL foi uma das primeiras linguagens extremamente organizadas


2. Muitas linguagens modernas herdaram ideias de modularização do COBOL


3. Sistemas bancários enormes dependem dessa organização


4. Grandes programas COBOL podem ter centenas de SECTIONs


Erros comuns de iniciantes


1. Misturar lógica na DATA DIVISION


2. Criar PROCEDURE DIVISION gigantesca


3. Não modularizar PARAGRAPHs


4. Confundir FILE SECTION com WORKING-STORAGE


Dicas importantes

Organize variáveis claramente


Separe lógica em PARAGRAPHs pequenos


Nomeie SECTIONs corretamente


Mantenha PROCEDURE DIVISION organizada


Como isso aparece no dia a dia?

Praticamente em:

  • COBOL batch;

  • CICS;

  • DB2;

  • sistemas bancários;

  • processamento financeiro.


Resumo rápido

EstruturaFunção
IDENTIFICATION DIVISIONIdentificação
ENVIRONMENT DIVISIONAmbiente/arquivos
DATA DIVISIONVariáveis/layouts
PROCEDURE DIVISIONLógica
SECTIONSubdivisão
PARAGRAPHBloco lógico

Conclusão

As DIVISIONs e SECTIONs são a base estrutural do COBOL.

Elas organizam programas em áreas específicas de identificação, ambiente, dados e lógica, permitindo criar sistemas corporativos extremamente organizados e confiáveis no ambiente mainframe IBM Z.