COBOL
Por Sergio Crespo - Universidade Federal
Fluminense UFF - Campus Rio das Ostras
Crespo.sergio@gmail.com
COmmon Business-Oriented Language
2014
O inicio
 Em 1959, foi tomada a decisão de criar uma
fonte de linguagem apropriada para dados
comerciais, em uma reunião no Pentágono em
Washington, DC.
 O propósito da reunião era discutir a necessidade
de uma linguagem geral, direcionada para serviços
dentro de dados comerciais, e a possibilidade de
criar desta maneira uma linguagem. Como
resultado uma comissão foi nomeada com o nome
de CODASYL (Conference On Data System
Languages).
O inicio
 Embora o COBOL tenha sido desenvolvido
e mantido pela CODASYL, ele foi também
estabelecido como uma Linguagem Padrão
pelo Instituto Americano de Padrões
Nacionais (ANSI).
Cobol longevidade
Cobol mantém longevidade no Brasil e atrai
investimentos de empresas
 Estudo com 370 profissionais deTI revela que
a plataforma para mainframe é a principal
linguagem usada por 52% dos entrevistados e
que 65% preveem escrever um aplicativo para
esse ambiente nos próximos três anos
 Da Redação 08 de janeiro de 2014 - 07h30
Cobol, você sabia?
Cobol é fácil
 Aprender essa linguagem consiste em saber a língua
inglesa. Para compreendê-la o programador deve
conhecer sua sintaxe, verbos e sentenças da língua.
Linguagem pode ser executada em qualquer lugar
 Pode ser usada virtualmente em qualquer
plataforma de hardware. Com ele, as empresas
conseguem reutilizar aplicações Cobol, que foram
escritas há décadas, e utilizar em novas plataformas,
como .NET ou JVM, por exemplo.
Cobol, você sabias?
Os números certos
 Não é surpresa que o setor financeiro é baseado em
sistemasCobol. Bancos, seguradoras, empresas de
gestão de fundos, sistemas de pensões, folha de
pagamento e cartões de crédito, todos dependem
dessa linguagem.
 Funções de processamento numérico fazem dessa
linguagem a melhor escolha para aplicações, já que
um pequeno erro de arredondamento fracionário
pode fazer uma diferença crucial. O sistema Cobol
oferece precisão aritmética de 31 dígitos,
tornando-o a melhor opção para o setor financeiro.
Cobol, você sabia?
Cobol com sua IDE favorito
 Não é preciso se preocupar em aprender como
usar novas ferramentas. É possível desenvolver
aplicações em Cobol usando o Visual Studio ou
Eclipse.
Economia de tempo
 Cobol é um auto - documento. A legibilidade do
código dessa linguagem e sua rígida estrutura
hierárquica facilitam sua leitura e manutenção,
poupando tempo.
Cobol, você sabia?
Dados rápidos
 A linguagem pode processar dados das mais diversas
fontes, incluindo qualquer sistema de gestão de
banco de dados relacional (RDBMS), que também
fornece suporte de linguagem para dados,
superando processamento por milhas.
 Os sistemas em Cobol usam arquivos de dados
indexados que mantêm estruturas B-tree internas
(o que significa que a velocidade e eficiência são
características importantes), fornecendo acesso
rápido aos dados, mesmo quando os
armazenamentos são executados em terabytes.
Cobol, você sabia?
Agilidade
 A linguagem Cobol tem mais de 50 anos de
otimizações, o que a torna bem eficiente em
processamento de dados.
Em todo lugar
 As aplicações em Cobol estão em todos os
lugares e é executada em mais de 70% das
transações comerciais do mundo. A falta de
profissionais capacitados pode ser um problema
para os departamentos deTI no futuro, afetando
o mundo dos negócios.
Cobol, você sabia?
 A universidade Carnegie Mellon oferece
aulas de Cobol. Ray Scott, que ensina essa
linguagem aos alunos por cerca de 30 anos, e
atua como diretor de sistemas e operações
em supercomputador em Pittsburgh Center,
considera que é importante os futuros
profissionais deTI terem contato com essa
tecnologia.
Cobol, você sabia?
 As especificações do COBOL 2002 incluem
suporte à programação orientada a
objetos e outras características das
linguagens modernas.
Cobol, você sabia?
Cobol, você sabia?
Cobol, você sabia?
“Estudantes, dediquem-se mais ao COBOL” ,
palavras de um gerente da IBM
Pedro Britto diz que os mainframes são realidade
em grandes empresas.
“Parte significativa do desenvolvimento deTI em grandes empresas ainda é feita
para mainframe e em COBOL. O estudante multitarefa não está disposto a trocar a
sua realidade por uma tela verde.” De acordo com Britto, antes existia propriamente
uma barreira de linguagem — é difícil aprender COBOL; essa reclamação é
constante. “Existe um preconceito no mercado”, diz.
COBOL: vai encarar?
O executivo ressalta que ao longo dos anos companhias como a IBM produziram
soluções para facilitar essa aproximação com a linguagem. Por exemplo, o ambiente
Eclipse facilita o desenvolvimento tanto para COBOL como para Java.
Compiladores Cobol - Windows
 A Fujitsu, distribui o NetCOBOL forWindows – tido como o
mais rápido compilador no ambienteWindows com a
confiança do desenvolvimentoCOBOL. Explora todas as
funções do sistema operacional e integra o COBOL de
forma transparente com as ferramentas de
desenvolvimento visuais da Microsoft e seus ambientes de
execução.
 Também pela Fujitsu, há o NetCOBOL for .NET– “é o
primeiro COBOL a ser integrado totalmente na estrutura
.NET da Microsoft e no ambienteVisual Studio .NET.”
Possui a vantagem de utilizar todas as classes da estrutura
.NET, além da criação de Web Services.
Compiladores Cobol - Windows
 A Micro Focus, é comercializado o Net Express –segundo a DTS
Consulting (2005), seu desenvolvimento é baseado no
compilador Micro Focus COBOL 32 Bits / 64 Bits e possui um
ambiente completo para desenvolvi mento em plataformas
Windows.
 A Micro Focus comercializa também o Net Express with .NET–
possui uma poderosa integração comoVisual Studio e com o
.NET Framework.Tem conectividade com J2EE e provê um
ambiente completo para desenvolvimento e modernização das
aplicações em COBOL.
 Acucorp (empresa incorporada pela Micro Focus), o AcuCOBOL-
GT – compatível com ANSI e é composto pelo seu compilador,
executável, depurador, utilitário de suporte e sistemas de
arquivos indexadoVISION.
Cobol da Micro Focus
Visual Cobol R3, uma ferramenta que facilita a portabilidade das aplicações
Cobol em plataformas Windows, .NET, Unix, Linux, JVM e na
cloud.
OVisual Cobol R3 oferece aos programadores a liberdade de alargarem o Cobol a
plataformas mais modernas e aos diferentes tipos de desenvolvimento de
aplicações, sem necessidade de rescrever o código, facilitando o processo de
modernização de aplicações e a sua migração em qualquer tipo de plataforma.
COBOL
PROGRAMANDO
Molezinha!
Cobol divisões
O COBOL consiste basicamente em quatro divisões
separadas:
IDENTIFICATION DIVISISION
A IDENTIFICATION DIVISION possui informações
documentais, como nome do programa, quem o
codificou e quando essa codificação foi realizada.
ENVIRONMENT DIVISION
A ENVIRONMENT DIVISION descreve o
computador e os periféricos que serão utilizados
pelo programa.
Cobol divisões
DATA DIVISION
 Divisão voltada única e exclusivamente à
definição de estruturas de registros, variáveis
e constantes do programa, ou seja, uma área
de alocação de memória para todo o espaço
necessário ao seu programa.
 Esta divisão possui a Working-Storage
Section. Esta seção da Data Division é
voltada para a declaração das variáveis e
constantes do programa.
Cobol divisões
PROCEDURE DIVISION
A PROCEDURE DIVISION contém o código que
irá manipular os dados descritos na DATA
DIVISION. É nesta divisão que o desenvolvedor
descreverá o algoritmo do programa.
Cobol
1º programa COBOL
Tabela de formatos
Assim, podemos declarar uma variável qualquer como “PIC 999”, indicando que a
variável em questão irá conter um valor de 3 dígitos quaisquer ou “PIC X(8)” indicando
que a variável receberá qualquer string de até 8 caracteres.
WORKING-STORAGE SECTION
FILLER: palavra reservada do
COBOL que serve para reservar uma
determinada quantidade de bytes
em um arquivo ou na memória.
REDEFINES: cláusula utilizada para
redefinir um item de grupo e/ou
item elementar em partes menores
ou em uma imagem diferente.
WORKING-STORAGE SECTION
Comando display
display erase
 O comando display é utilizado para exibir informações na
tela em ambientes caracteres. A palavra reservada erase
é utilizada em conjunto com display para limpar a tela.
display "Calculo de área (Quadrados/Retangulos)" at 0521
 Esta forma de utilização do display irá exibir na tela a
cadeia de caracteres entre as aspas (“ “) na posição
especificada por at 0521, ou seja, linha 5 e coluna 21 que
são compreendidas entre linhas de 1 a 25 e colunas de 1 a
80.
Comando accept
accept largura at 1019
 Este comando é utilizado para aceitarmos
alguma informação, neste caso estaremos
esperando que usuário informe algo na
posição 1019 (Seguem as mesmas regras do
comando display), o usuário indica para a
aplicação que terminou de fornecer estar
informações pressionando a tecla ENTER.
Comando multiplay
multiply largura by altura giving area-result
 O comando multiply é um dos comandos
aritméticos da linguagem, ele é utilizado para
funções de multiplicação, neste caso ele irá
multiplicar o conteúdo numérico da variável
largura por altura movendo o resultado para a
variável área-result.
Comandos condicionais
 Os programas sempre necessitam tomar
decisões sobre que rumo tomar em certas
circunstâncias. Para que o programa possa
fazer isto existem dois comandos
condicionais: o IF e o EVALUATE
Comando IF
Comando IF
Comando EVALUATE
Comando EVALUATE
Comando EVALUATE
Comandos aritméticos
A linguagem Cobol possui rotinas que auxiliam
o programador a efetuar cálculos aritméticos,
são eles:
 ADD
 SUBTRACT
 MULTIPLY
 DIVIDE
 COMPUTE
© http://www.cadcobol.com/procedur.htm
Comando ADD
© http://www.cadcobol.com/procedur.htm
Comando ADD
© http://www.cadcobol.com/procedur.htm
Comando ADD
© http://www.cadcobol.com/procedur.htm
Comando ADD
© http://www.cadcobol.com/procedur.htm
Comando SUBTRACT
© http://www.cadcobol.com/procedur.htm
Comando SUBTRACT
© http://www.cadcobol.com/procedur.htm
Comando SUBTRACT
© http://www.cadcobol.com/procedur.htm
Comando MULTIPLY
© http://www.cadcobol.com/procedur.htm
Comando DIVIDE
© http://www.cadcobol.com/procedur.htm
Comando COMPUTE
© http://www.cadcobol.com/procedur.htm
Comando COMPUTE
Para arredondar o resultado de um comando COMPUTE, usamos a opção
ROUNDED diretamente após o campo receptor.
Se for necessário verificar uma condição de erro, devemos usar a cláusulaON
SIZE ERROR como a última instrução.
© http://www.cadcobol.com/procedur.htm
Comando MOVE
 Esta declaração permite a movimentação de campos
remetentes (identificador-1) para campos receptores
(identificador-2).
Comando MOVE
Comando MOVE
Laços em COBOL
Comando PERFORM
Comando PERFORM
Comando PERFORM UNTIL
Comando STOP RUN
Manipulando arquivos
Abrindo um arquivo em COBOL
 Para abrir ficheiros em COBOL usa-se o verbo
OPEN, e existem quatro modos de abertura de
arquivo:
 INPUT - O arquivo é aberto apenas para leitura.
 OUTPUT - O arquivo é aberto para escrita,
sendo previamente eliminados todos os seus
registos.
 I-O - O arquivo é aberto para leitura, mas os
registos podem ser rescritos.
 EXTEND - O arquivo é aberto para escrita de
registos após os nele existentes.
Dentro da Procedure Division
Para Ler dados de um arquivo
 Usa-se o verbo READ
Lendo arquivos indexados
 Por vezes é conveniente ler vários registos de um arquivo
indexado, em vez de apenas um. Para tal, é necessário
usar o verbo START. Este verbo posiciona-nos (não lê) no
primeiro registo do arquivo que obedece às condições
por nós indicadas.
E
AGORA?
Cobol

Cobol

  • 1.
    COBOL Por Sergio Crespo- Universidade Federal Fluminense UFF - Campus Rio das Ostras Crespo.sergio@gmail.com COmmon Business-Oriented Language
  • 2.
  • 8.
    O inicio  Em1959, foi tomada a decisão de criar uma fonte de linguagem apropriada para dados comerciais, em uma reunião no Pentágono em Washington, DC.  O propósito da reunião era discutir a necessidade de uma linguagem geral, direcionada para serviços dentro de dados comerciais, e a possibilidade de criar desta maneira uma linguagem. Como resultado uma comissão foi nomeada com o nome de CODASYL (Conference On Data System Languages).
  • 9.
    O inicio  Emborao COBOL tenha sido desenvolvido e mantido pela CODASYL, ele foi também estabelecido como uma Linguagem Padrão pelo Instituto Americano de Padrões Nacionais (ANSI).
  • 10.
    Cobol longevidade Cobol mantémlongevidade no Brasil e atrai investimentos de empresas  Estudo com 370 profissionais deTI revela que a plataforma para mainframe é a principal linguagem usada por 52% dos entrevistados e que 65% preveem escrever um aplicativo para esse ambiente nos próximos três anos  Da Redação 08 de janeiro de 2014 - 07h30
  • 11.
    Cobol, você sabia? Cobolé fácil  Aprender essa linguagem consiste em saber a língua inglesa. Para compreendê-la o programador deve conhecer sua sintaxe, verbos e sentenças da língua. Linguagem pode ser executada em qualquer lugar  Pode ser usada virtualmente em qualquer plataforma de hardware. Com ele, as empresas conseguem reutilizar aplicações Cobol, que foram escritas há décadas, e utilizar em novas plataformas, como .NET ou JVM, por exemplo.
  • 12.
    Cobol, você sabias? Osnúmeros certos  Não é surpresa que o setor financeiro é baseado em sistemasCobol. Bancos, seguradoras, empresas de gestão de fundos, sistemas de pensões, folha de pagamento e cartões de crédito, todos dependem dessa linguagem.  Funções de processamento numérico fazem dessa linguagem a melhor escolha para aplicações, já que um pequeno erro de arredondamento fracionário pode fazer uma diferença crucial. O sistema Cobol oferece precisão aritmética de 31 dígitos, tornando-o a melhor opção para o setor financeiro.
  • 13.
    Cobol, você sabia? Cobolcom sua IDE favorito  Não é preciso se preocupar em aprender como usar novas ferramentas. É possível desenvolver aplicações em Cobol usando o Visual Studio ou Eclipse. Economia de tempo  Cobol é um auto - documento. A legibilidade do código dessa linguagem e sua rígida estrutura hierárquica facilitam sua leitura e manutenção, poupando tempo.
  • 14.
    Cobol, você sabia? Dadosrápidos  A linguagem pode processar dados das mais diversas fontes, incluindo qualquer sistema de gestão de banco de dados relacional (RDBMS), que também fornece suporte de linguagem para dados, superando processamento por milhas.  Os sistemas em Cobol usam arquivos de dados indexados que mantêm estruturas B-tree internas (o que significa que a velocidade e eficiência são características importantes), fornecendo acesso rápido aos dados, mesmo quando os armazenamentos são executados em terabytes.
  • 15.
    Cobol, você sabia? Agilidade A linguagem Cobol tem mais de 50 anos de otimizações, o que a torna bem eficiente em processamento de dados. Em todo lugar  As aplicações em Cobol estão em todos os lugares e é executada em mais de 70% das transações comerciais do mundo. A falta de profissionais capacitados pode ser um problema para os departamentos deTI no futuro, afetando o mundo dos negócios.
  • 16.
    Cobol, você sabia? A universidade Carnegie Mellon oferece aulas de Cobol. Ray Scott, que ensina essa linguagem aos alunos por cerca de 30 anos, e atua como diretor de sistemas e operações em supercomputador em Pittsburgh Center, considera que é importante os futuros profissionais deTI terem contato com essa tecnologia.
  • 17.
    Cobol, você sabia? As especificações do COBOL 2002 incluem suporte à programação orientada a objetos e outras características das linguagens modernas.
  • 18.
  • 19.
  • 20.
    Cobol, você sabia? “Estudantes,dediquem-se mais ao COBOL” , palavras de um gerente da IBM Pedro Britto diz que os mainframes são realidade em grandes empresas. “Parte significativa do desenvolvimento deTI em grandes empresas ainda é feita para mainframe e em COBOL. O estudante multitarefa não está disposto a trocar a sua realidade por uma tela verde.” De acordo com Britto, antes existia propriamente uma barreira de linguagem — é difícil aprender COBOL; essa reclamação é constante. “Existe um preconceito no mercado”, diz. COBOL: vai encarar? O executivo ressalta que ao longo dos anos companhias como a IBM produziram soluções para facilitar essa aproximação com a linguagem. Por exemplo, o ambiente Eclipse facilita o desenvolvimento tanto para COBOL como para Java.
  • 21.
    Compiladores Cobol -Windows  A Fujitsu, distribui o NetCOBOL forWindows – tido como o mais rápido compilador no ambienteWindows com a confiança do desenvolvimentoCOBOL. Explora todas as funções do sistema operacional e integra o COBOL de forma transparente com as ferramentas de desenvolvimento visuais da Microsoft e seus ambientes de execução.  Também pela Fujitsu, há o NetCOBOL for .NET– “é o primeiro COBOL a ser integrado totalmente na estrutura .NET da Microsoft e no ambienteVisual Studio .NET.” Possui a vantagem de utilizar todas as classes da estrutura .NET, além da criação de Web Services.
  • 22.
    Compiladores Cobol -Windows  A Micro Focus, é comercializado o Net Express –segundo a DTS Consulting (2005), seu desenvolvimento é baseado no compilador Micro Focus COBOL 32 Bits / 64 Bits e possui um ambiente completo para desenvolvi mento em plataformas Windows.  A Micro Focus comercializa também o Net Express with .NET– possui uma poderosa integração comoVisual Studio e com o .NET Framework.Tem conectividade com J2EE e provê um ambiente completo para desenvolvimento e modernização das aplicações em COBOL.  Acucorp (empresa incorporada pela Micro Focus), o AcuCOBOL- GT – compatível com ANSI e é composto pelo seu compilador, executável, depurador, utilitário de suporte e sistemas de arquivos indexadoVISION.
  • 23.
    Cobol da MicroFocus Visual Cobol R3, uma ferramenta que facilita a portabilidade das aplicações Cobol em plataformas Windows, .NET, Unix, Linux, JVM e na cloud. OVisual Cobol R3 oferece aos programadores a liberdade de alargarem o Cobol a plataformas mais modernas e aos diferentes tipos de desenvolvimento de aplicações, sem necessidade de rescrever o código, facilitando o processo de modernização de aplicações e a sua migração em qualquer tipo de plataforma.
  • 24.
  • 25.
  • 26.
    Cobol divisões O COBOLconsiste basicamente em quatro divisões separadas: IDENTIFICATION DIVISISION A IDENTIFICATION DIVISION possui informações documentais, como nome do programa, quem o codificou e quando essa codificação foi realizada. ENVIRONMENT DIVISION A ENVIRONMENT DIVISION descreve o computador e os periféricos que serão utilizados pelo programa.
  • 27.
    Cobol divisões DATA DIVISION Divisão voltada única e exclusivamente à definição de estruturas de registros, variáveis e constantes do programa, ou seja, uma área de alocação de memória para todo o espaço necessário ao seu programa.  Esta divisão possui a Working-Storage Section. Esta seção da Data Division é voltada para a declaração das variáveis e constantes do programa.
  • 28.
    Cobol divisões PROCEDURE DIVISION APROCEDURE DIVISION contém o código que irá manipular os dados descritos na DATA DIVISION. É nesta divisão que o desenvolvedor descreverá o algoritmo do programa.
  • 29.
  • 30.
  • 31.
    Tabela de formatos Assim,podemos declarar uma variável qualquer como “PIC 999”, indicando que a variável em questão irá conter um valor de 3 dígitos quaisquer ou “PIC X(8)” indicando que a variável receberá qualquer string de até 8 caracteres.
  • 32.
    WORKING-STORAGE SECTION FILLER: palavrareservada do COBOL que serve para reservar uma determinada quantidade de bytes em um arquivo ou na memória. REDEFINES: cláusula utilizada para redefinir um item de grupo e/ou item elementar em partes menores ou em uma imagem diferente.
  • 33.
  • 34.
    Comando display display erase O comando display é utilizado para exibir informações na tela em ambientes caracteres. A palavra reservada erase é utilizada em conjunto com display para limpar a tela. display "Calculo de área (Quadrados/Retangulos)" at 0521  Esta forma de utilização do display irá exibir na tela a cadeia de caracteres entre as aspas (“ “) na posição especificada por at 0521, ou seja, linha 5 e coluna 21 que são compreendidas entre linhas de 1 a 25 e colunas de 1 a 80.
  • 35.
    Comando accept accept larguraat 1019  Este comando é utilizado para aceitarmos alguma informação, neste caso estaremos esperando que usuário informe algo na posição 1019 (Seguem as mesmas regras do comando display), o usuário indica para a aplicação que terminou de fornecer estar informações pressionando a tecla ENTER.
  • 36.
    Comando multiplay multiply larguraby altura giving area-result  O comando multiply é um dos comandos aritméticos da linguagem, ele é utilizado para funções de multiplicação, neste caso ele irá multiplicar o conteúdo numérico da variável largura por altura movendo o resultado para a variável área-result.
  • 38.
    Comandos condicionais  Osprogramas sempre necessitam tomar decisões sobre que rumo tomar em certas circunstâncias. Para que o programa possa fazer isto existem dois comandos condicionais: o IF e o EVALUATE
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
    Comandos aritméticos A linguagemCobol possui rotinas que auxiliam o programador a efetuar cálculos aritméticos, são eles:  ADD  SUBTRACT  MULTIPLY  DIVIDE  COMPUTE © http://www.cadcobol.com/procedur.htm
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
    Comando COMPUTE Para arredondaro resultado de um comando COMPUTE, usamos a opção ROUNDED diretamente após o campo receptor. Se for necessário verificar uma condição de erro, devemos usar a cláusulaON SIZE ERROR como a última instrução. © http://www.cadcobol.com/procedur.htm
  • 56.
    Comando MOVE  Estadeclaração permite a movimentação de campos remetentes (identificador-1) para campos receptores (identificador-2).
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 67.
    Abrindo um arquivoem COBOL  Para abrir ficheiros em COBOL usa-se o verbo OPEN, e existem quatro modos de abertura de arquivo:  INPUT - O arquivo é aberto apenas para leitura.  OUTPUT - O arquivo é aberto para escrita, sendo previamente eliminados todos os seus registos.  I-O - O arquivo é aberto para leitura, mas os registos podem ser rescritos.  EXTEND - O arquivo é aberto para escrita de registos após os nele existentes.
  • 68.
  • 69.
    Para Ler dadosde um arquivo  Usa-se o verbo READ
  • 70.
    Lendo arquivos indexados Por vezes é conveniente ler vários registos de um arquivo indexado, em vez de apenas um. Para tal, é necessário usar o verbo START. Este verbo posiciona-nos (não lê) no primeiro registo do arquivo que obedece às condições por nós indicadas.
  • 71.