Histórico da Linguagem

A linguagem Cobol surgiu em maio de 1959 pelo Departamento de Defesa dos EUA onde se reuniram representantes de vários fabricantes de computadores e usuários em geral. Surgiu com o objectivo de ser uma linguagem comum de programação para computadores digitais tendo em vista aplicações comerciais ou seja, Cobol é uma linguagem de programação de alto nível projectada para aplicações comerciais. A sua sigla significa Common Business Oriented Language (Linguagem de Programação Comum Orientada à negócios) e ela foi idealizada em uma reunião patrocinada pelo Pentágono, onde a partir daí iniciaram os projectos da nova linguagem. Em agosto de 1961 foi divulgada a primeira versão do Cobol, que com o passar dos tempos foi sendo aperfeiçoada, resultando em versões que aumentaram a potencialidade da linguagem. Uma importante contribuição da COBOL foi o seu código de fácil aprendizado, pois utiliza verbos da língua inglesa para identificar os seus comandos. É excelente para manipulação de arquivos. A Cobol é uma linguagem autodescritiva com uma organização rígida e bem definida com o propósito de facilitar a escrita e a leitura tanto para o programador como para o leigo. Uma das principais vantagens que a Cobol trouxe foi uma padronização, ou uniformização entre os fabricantes de computadores. Podemos então dizer que tal linguagem de programação possui grande portabilidade. Um programa Cobol é sempre composto de entradas (frases) devidamente dispostas em divisões, secções e parágrafos. Os programas em Cobol são divididos em quatro partes que são as seguintes: 1-Identification Division 2-Enviroment Division 3-Data Division 4-Procedure Division

sendo os outros opcionais. DATE-WRITTEN. Nome-do-programador INSTALLATION. Dezembro de 2003. o autor e comentários em geral. devem aparecer nesta ordem. Exemplo de IDENTIFICATION DIVISION: IDENTIFICATION DIVISION PROGRAM-ID. Micrológica. Data em que o programa foi compilado SECURITY. Sua função é identificar o programa de forma mais geral. a data de escrita. Identification Division É a primeira divisão do programa. Nome-do-programa AUTOR. Agosto de 2003. Data em que foi escrito o programa DATE-COMPILED. Embora seja obrigatório o uso da divisão. Exemplo1. INSTALLATION. Contudo. DATE-COMPILED. se eles estiverem presentes. Rodrigo. AUTOR. processando informações tais como: o nome do programa. Esta divisão não possui secções e suas entradas são agrupadas em parágrafos de nomes fixos. . Comentários sobre a segurança do programa OBS: Apenas o parágrafo PRGRAM-ID é obrigatório. 1 . Local onde foi feito o programa DATE-WRITTEN. Estrutura da Divisão IDENTIFICATION DIVISION PROGRAM-ID.As partes acima citadas auxiliam na simplicidade e eficiência da linguagem e facilitam a leitura dos programas. todos os parágrafos são opcionais.

CONFIGURATION SECTION. FILE-CONTROL. Sde-42 OBJECT-COMPUTER. CURRENCY SIGN IS “ E ” DECIMAL . SOURCE-COMPUTER. define técnicas de controle. nome do computador usado para a compilação OBJECT-COMPUTER. I-O-CONTROL.Environment Division A Segunda divisão de um programa Cobol é usada para especificar o computador utilizado para a compilação.2 . SOURCE-COMPUTER. SELECT<nome-arq> ASSIGN TO {Disk } {Printer } [ RESERVE <inteiro> {Area }] . CONFIGURATION SECTION. o computador usado pelo programa objecto e para correlacionar os arquivos lógicos com os equipamentos periféricos.POINT IS COMMA PRINTER IS IMPRESSORA. FILE – CONTROL. relaciona nomes internos a equipamentos INPUT-OUTPUT SECTION. Sde-42 SPECIAL-NAMES. A ENVIRONMENT DIVISION é formada por duas secções: · A CONFIGURATION SECTION que trata das características do computador fonte e do computador objecto. Estrutura da Divisão: ENVIRONMENT DIVISION. nomeia e associa arquivos a periféricos. Exemplo de CONFIGURATION SECTION ENVIRONMENT DIVISION. · A INPUT-OUTPUT SECTION trata as informações necessárias ao controle da transmissão e manipulação de dados entre o meio externo e o programa objecto. nome do computador usado para a execução SPECIAL-NAMES.

{entrada de descrição de arquivo} {entrada de descrição de registro} WORKING-STORAGE SECTION. · WORKING . aqueles que só existem durante a execução do programa. [entrada de descrição de item independente] [entrada de descrição de registro] A DATA DIVISION é formada por três secções: · FILE SECTION .STORAGE SECTION .. Data Division É a terceira divisão de um programa Cobol.{Areas} [ FILE – STATUS IS <nome de dados 1> ] [ ACCESS MODE IS {SEQUENTIAL} ] {RANDOM} {DYNAMIC} [ ORGANIZATION IS {SEQUENTIAL} ] {INDEXED} {RELATIVE} [ RECORD KEY IS <nome de dado 2> ] [ RELATIVE KEY IS <nome de dado 3> ]. isto é. FILE SECTION. Estrutura da Divisão DATA DIVISION. 3 . trata e descreve os dados que serão manipulados pelo programa durante o processamento.Descreve dados internos .Preocupa-se em descrever os dados que serão lidos e/ou gravados externamente (dados que existiam antes do programa e dados que continuarão a existir após o programa ser executado). · LINKAGE SECTION . SAME AREA FOR <nome arq 1 > <nome arq 2> .. sejam eles externos (informações gravadas em arquivo) ou internos (existem durante a execução do programa).

geralmente. entrada e saída. ABRE-ARQUIVOS . movimento dos dados.. Um nome de secção aparecendo sempre na margem A(coluna 8).. 4 . Como vimos acima o “STATEMENT” é a unidade básica da Divisão de Procedimentos. {nome de secção {nome de parágrafo {sentença}. Exemplo da Procedure Division: PROCEDURE DIVISION. etc. Existem dois tipos de parágrafos de “Statements”: condicionais e imperativos.}.. Os procedimentos descritos na PROCEDURE DIVISION são escritos em “STATEMENTS” e estão. Contudo se a secção for incluída. ainda.OBS. Sua função é descrever tais procedimentos necessários para resolução de um problema dado. Uma secção termina imediatamente antes do próximo nome de secção ou pelo termino do programa. Estrutura da Divisão PROCEDURE DIVISION.}. estarem agrupados em SECTIONS também criadas pelo programador.. UNICA SECTION. Tais parágrafos podem. a ordem é importante. As sentenças podem ser agrupadas para formar um parágrafo . terminando sempre por um ponto seguido de espaço.. agrupados em parágrafos cujos nomes são fornecidos pelo programador. Procedure Division É a divisão do programa que especifica as acções necessárias para o processamento de dados em geral: controle de execução. que deve ser iniciada por um nome de secção seguido da palavra section e por um ponto.. Cada secção é opcional e pode ser omitida se não for necessária.Um ou mais parágrafos formam uma secção. Uma sentença é composta por um ou mais statements.

[comentários] ..] [INSTALLATION. CLOSE DADOS LISTAG... [comentários] ... . [comentários] . Estrutura Básica Organização de um programa COBOL: Um programa COBOL possui quatro divisões que devem ser colocadas na ordem adequada.] [SECURITY. MOVE NUMERO – FUNC TO NUMERO. [comentários] . [comentários] . A sua estrutura completa é: IDENTIFICATION DIVISION PROGRAM-ID. WRITE LINHA FROM IMPRESSAO. LEITURA READ DADOS AT END GO TO ACABOU....] [REMARKS..LIDOS.. ADD 1 TO CONTA – LINHA. SOURCE-COMPUTER. nome-do-programa [AUTHOR.LIDOS.. ADD 1 TO CONTA . STOP RUN...] [DATE-COMPILED..] [INSTALLATION.] [DATE-WRITTEN.] ENVIRONMENT DIVISION [CONFIGURATION SECTION.OPEN INPUT DADOS OUTPUT LISTAG. DISPLAY “REGISTROS LIDOS” CONTA . MOVE NOME – FUNC TO NOME. [comentários] . GO TO LEITURA. DISPLAY “LINHAS IMPRESSAS” CONTA – LINHA. [comentários] . ACABOU.

]. [Descrição dos itens de dados] . } .. {sentença} ... } . } . {Descrição de relatórios} {Descrição dos grupos de relatórios} .. {nome-da-secção SECTION.... [INPUT-OUTPUT SECTION..] [DECLARATIVES. FILE-CONTROL. USE SENTENCE.. DATA DIVISION.. {sentença} . [Descrição das Entradas de Registros] .. ]. PROCEDURE DIVISION. ]..] {nome-de-parágrafo.]]. } . [COMMUNICATION SECTION.. END DECLARATIVES.OBJECT-COMPUTER. [FILE SECTION... ].. } . } . ]]. {Descrição das Entradas de Comunicação. [Descrição de registros] .. [REPORT SECTION.. } .. {nome-de-parágrafo. [WORKING-STORAGE SECTION.. { Descrição dos arquivos { Descrição dos registros } ... [LINKAGE SECTION. [Descrição de registros] . [USING identificador-1 [identificador-2] .. [SPECIAL-NAMES. ...... [I-O-CONTROL.] {nome-da-secção SECTION [prioridade] ..... ]. ENTRADA. [Descrição dos itens de dados] ...

“+” “-“ “*” “/” “=” “$” “.Sintaxe da Linguagem A declaração de variáveis em Cobol tem que atender algumas regras de sintaxe tais quais : · · · Elas têm que ter no mínimo um e Máximo de 30 caracteres. Devem ser utilizadas combinações de “A” a “Z” . Numérico ( sinalizado ou não. Devem conter pelo menos um caracter alfabético e não podem começar ou terminar com hífen. Cliente-Contas.” “““ “‘“ “(“ “)” “<” “>” “:” dois pontos Ponto virgula ponto e virgula aspas apostrofo mais menos multiplicação divisão igual Exemplos : PagamentoTotal. com decimais ou inteiros) Alfanumérico .” “. 2. Símbolos utilizados em Cobol: espaço. “0” a “9” e bifem. Existem três tipos básicos de dados utilizados na Linguagem Cobol que são os seguintes 1.” “.

3. Constantes Figurativas Obs : Ao contrario de outras linguagens de programação a linguagem Cobol não permite a utilização de constantes definidas pelo usuário No Cobol. Parênteses Operadores Unários ”+” e “-“ Exponenciação(“**”) Multiplicação e Divisão(“*” e “/”) Adição e Subtracção (“+” e “-“) · · · · · · · · · Sequência “IF -THEN–ELSE” e ” IF – THEN” O comando IF do Cobol é uma implementação da estrutura de selecção da Programação Estruturada. Vejamos um exemplo dessa estrutura a seguir: IF condição THEN Comando-1 ELSE Comando-2 Maior que (“>” ou greater than) Menor que (“<” ou less than) Igualdade (“=” ou Equal to) Diferença (“<>” ou Unequal to) Maior ou Igual (“>=” ou Greater than or Equal to) Menor ou igual (“<=” ou Less than or Equal to) E lógico (AND) Ou lógico (OR) Negação (NOT) As expressões relacionais utilizam os seguintes operadores: Há ainda operadores Lógicos : . 5. 4.3. 2. as operações nas expressões aritméticas obedecem a seguinte precedência: 1.

Um grande problema da linguagem Cobol. no que diz respeito ao seu emprego em Programação Estruturada. que não . Ao aninharmos dois IF´s. más não existe em outras. A clausula THEN é um palavra opcional em algumas versões do Cobol. A estrutura IF-THEN. que é o caso particular de um IF-THEN-ELSE com a parte ELSE nula. Isto se deve às características de pontuação do Cobol. é o aninhamento. Neste ultimo caso recomenda-se o uso da cláusula como um comentário. tem a seguinte forma em Cobol Estruturado: IF condição THEN Comando ELSE NEXT SETENCE A clausula ELSE NEXT SETENCE poderá ser omitida se ela preceder imediatamente o ponto terminal da sentença.Obs: Neste contexto “Comando” pode ser entendido como conjunto de comandos. não tenha nenhum comando. apenas para efeito de consistência com a formatação do esquema na programação estruturada e para boa documentação. devemos cuidar para que o caminho entre a saída do IF interno e a do IF externo permitem ninho de sentenças.

.. parágrafo-1 comando-1 GO TO parágrafo-fim. identificador... . .. . parágrafo-n DEPENDING ON i parágrafo-erro Comando GO TO parágrafo-fim.. . Assim.EXIT. ... parágrafo-fim....“CASE” A estrutura Case não existe no Cobol.. parágrafo-2....... ... ... Sua implementação pode ser feita através do comando GO TO DEPENDING ON.. parágrafo-2 comando-2 GO TO parágrafo-fim..... n: comando-n é codificado em Cobol por : GO TO parágrafo-1. o trecho de programa Case identificador 1: comando-1 2: comando-2 . parágrafo-n comandp-n... .....

A implementação da estrutura: do while condição comando do é feita então por: PERFROM parágrafo-a THRU parágrafo-b UNTIL NOT condição. O processamento então continua a partir do comando seguinte ao PERFORM. comando. Algol. Todavia. paragrafo-a. …………. “DO-WHILE” A estrutura de comando DO-While também não existe em Cobol em sua forma pura como ocorre em Pascal.O parágrafo erro é uma procedure que resolve o caso em que o “identificador” não assume nenhum valor de 1 até n. paragrafo-b. . …………. se bem que não é de forma ideal. A sintaxe deste comando seria a seguinte: PERFORM parágrafo-a [THRU parágrafo-b] UNTIL condição. Ele causa a execução repetida dos comandos entre parágrafo-a e parágrafo-b Até que a condição seja satisfeita. o comando GO TO DEPENDING ON é ignorado e o parágrafo-erro deve prever as providencias para esta eventualidade. uma pequena adaptação ----------------ao comando PERFORM UNTIL tende a resolver o problema. Quando isto ocorre.

.. parágrafo-ª comando. por exemplo ... As características diferenciadas desse esquema de repetição em relação ao DO-WHILE são: 1.. dos comandos constituintes da estrutura.. um tipo numérico pode assumir valores diferentes que não numéricos...REPEAT-UNTIL Esta estrutura de controle também não existe em Cobol na sua forma definida pela Programação Estruturada. Evidentemente... As variáveis definidas na linguagem Cobol não sofrem regras rigorosas tal qual outras linguagens . As variáveis definidas na linguagem Cobol não sofrem regras rigorosas tal qual outras linguagens ..... uma boa implementação para repeat comando until condição é a seguinte: PERFORM parágrafo-a THRU parágrafo-b PERFORM parágrafo-a THRU parágrafo-b UNTIL condição. .... a saída do fluxo de controle da estrutura determinada pela verificação da condição (e não pela negação como ocorre no DO-WHILE)... .. 2. estas duas características devem ser mantidas rigorosamente na implementação desta estrutura em Cobol... Assim. por exemplo ... Toda variável utilizada num programa Cobol deve ter sua descrição na “Data Division” (Divisão de Dados).. .. um tipo numérico pode assumir valores diferentes que não numéricos. a execução... parágrafo-b.. causada pela disposição do teste após estes comandos... pelo menos uma vez.

20/12/72. IBM-370-165. Este programa grava arquivo sequencial em ordem crescente e classifica-o após em ordem decrescente. 18/12/72. 001 160 001 170 SELECT ARQUIVO ASSIGN TO DA-S-DISCO. SELECT TRABALHO ASSIGN TO DA-S-SORTWK01. 001 040 INSTALLATION.Código Fonte Exemplo: 001 010 IDENTIFICATION DIVISION. 001 060 DATE-COMPILED. 001 200 FD ARQUIVO LABEL RECORDS ARE STANDARD 002 010 002 030 002 040 002 050 002 070 002 090 002 100 002 110 DATA RECORD IS ENTRADA. 02 K PIC X(10). DATA RECORD IS TRAB. 001 190 FILE SECTION. . 002 020 01 ENTRADA. IBM-370-165. 02 Y PIC X(10). ALEX BASTOS. 02 Z PIC 99. 001 140 INPUT-OUTPUT SECTION 001 150 FILE-CONTROL. 02 FILLER PIC X(20). 02 FILLER PIC X(20). RDC-DIV USUARIOS. TABSORT. 001 100 ENVIRONMENT DIVISION. 001 110 CONFIGURATION SECTION. 001 050 DATE-WRITEN. 001 070 REMARKS. 001 020 PROGRAM-ID. 001 030 AUTHOR. 002 060 SD TRABALHO LABEL RECORDS ARE STANDARD 002 080 01 TRAB. 001 120 SOURCE-COMPUTER. 001 130 OBJECT-COMPUTER. 02 X PIC 99. 001 180 DATA DIVISION.

DISPLAY X' Y. 003 110 STOP RUN. MOVE 'TESTE-SORT' TO Y. 003 100 CLOSE ARQ. 002 130 77 I PIC 99 VALUE ZEROS. 003 090 FIN. READ ARQUIVO AT END GO TO FIN. . 002 150 002 160 002 180 002 190 002 200 003 010 003 020 003 030 003 040 003 060 003 070 003 080 OPEN OUTPUT ARQUIVO. WRITE ENTRADA. OPEN INPUT ARQUIVO. 002 140 PROCEDURE DIVISION. ADD 1 TO I. 003 050 GRAVA. IF I 100 GO TO GRAVACAO. SORT TRABALHO DESCENDING Z USING ARQUIVO GIVING ARQUIVO. MOVE I TO X. 002 170 GRAVACAO. GO TO GRAVA.002 120 WORKING-STORAGE SECTION.

Sign up to vote on this title
UsefulNot useful