Início topics COBOL O que é COBOL?
Explore a solução de modernização de aplicações de mainframe da IBM Inscreva-se para receber atualizações sobre tópicos de IA
Ilustração com colagem de pictogramas de engrenagem, braço robótico, celular

 

Publicado em 19 de abril de 2024
Contribuidores: Chrystal R. China, Michael Goodwin

O que é COBOL?

A linguagem comum orientada a negócios (COBOL) é uma linguagem de programação compilada de alto nível, semelhante ao inglês, desenvolvida especificamente para as necessidades de processamento de dados de negócios. 

O COBOL foi projetado com a versatilidade ideal em mente; sua verbosidade permite que os programadores usem uma linguagem de programação legível e fácil de manter, que pode funcionar em computadores e sistemas operacionais mainframe. Na verdade, foi uma das primeiras linguagens de programação padronizadas pelo American National Standards Institute (ANSI) e pela International Organization for Standardization (ISO).

Embora o COBOL seja considerado um sistema legado, muitas organizações governamentais e do setor privado continuam a usá-lo para executar aplicativos financeiros, administrativos e de negócios. Na verdade, a configuração imperativa, processual e (em suas iterações mais recentes) orientada a objetos do COBOL serve como base para mais de 40% de todos os sistemas bancários online.1

Ele também suporta 80% das transações de cartão de crédito presenciais, processa com 95% de todas as transações em caixas eletrônicos e alimenta sistemas que geram mais de US$ 3 bilhões em comércio todos os dias.1 Devido à sua estabilidade e poder de processamento superiores, ele continua a desempenhar um papel fundamental para ajudar as empresas a manter aplicativos e programas em arquiteturas existentes. 

Agende uma demonstração em tempo real

Consulte IBM watsonx Code Assistant for Z em ação.

Conteúdo relacionado

Assine a newsletter da IBM

História do COBOL

O COBOL foi desenvolvido por um consórcio de organizações governamentais e empresariais chamado Conference on Data Systems Languages (CODASYL), formado em 1959. Parcialmente derivado do FLOW-MATIC, uma linguagem criada pela pioneira da ciência da computação Dra. Grace Hopper, o COBOL foi criado como parte de uma iniciativa do Departamento de Defesa dos EUA que pressionava por uma linguagem de programação que pudesse funcionar em sistemas operacionais (Linux, Windows, Unix, z/OS etc.) e ambientes de hardware.

A primeira versão da linguagem de programação COBOL foi lançada em 1960. E embora a programação COBOL tenha sido originalmente planejada para servir como uma medida paliativa, o DoD rapidamente percebeu sua utilidade e obrigou os fabricantes de computadores a oferecê-la.

O COBOL foi finalmente padronizado como linguagem de computador em 1968, após o qual os programadores de COBOL implementaram várias revisões e modernizações, incluindo COBOL-61, COBOL-68, COBOL-74 e COBOL-85. A iteração mais recente, COBOL 2002, tenta tornar os aplicativos COBOL mais compatíveis com as práticas modernas de desenvolvimento de software, introduzindo recursos orientados a objetos e outros paradigmas avançados de programação na linguagem. 

Estrutura COBOL

O programa COBOL tem uma estrutura hierárquica que compreende divisões, seções, parágrafos, frases, verbos e cadeias de caracteres. A natureza divisional de um sistema COBOL (que compreende quatro divisões) permite uma separação distinta de preocupações dentro dos programas COBOL.

As divisões COBOL são as seguintes:

Divisão de identificação

A divisão de identificação é a primeira divisão de um programa COBOL — e uma divisão obrigatória. Ele atribui um nome ao programa e fornece outras informações de identificação, como autor, data de escrita e uma breve descrição da finalidade do programa.

Os programas COBOL precisam de um parágrafo PROGRAM-ID para funcionar na divisão de identificação. Por exemplo:

```

DIVISÃO DE IDENTIFICAÇÃO.

PROGRAM-ID. YourProgramName

AUTOR. Seu nome

DATE-WRITTEN. AAAAMMDD

COMENTÁRIO. "Breve descrição do programa"

Divisão de ambiente

A divisão de ambiente especifica o ambiente de tempo de execução de um programa e define os recursos de entrada e saída que ele usará. É subdividido em duas seções.

Não é de surpreender que a seção de configuração forneça informações sobre a configuração do sistema, incluindo os recursos do computador e do compilador que está usando. No entanto, devido aos avanços nas ferramentas do compilador, as seções de configuração se tornaram obsoletas nos sistemas COBOL modernos, que normalmente podem inferir e se adaptar automaticamente ao ambiente.

A seção de entrada-saída especifica os arquivos e dispositivos associados com os quais o programa pode interagir. Ele inclui o parágrafo FILE-CONTROL, que mapeia nomes de arquivos dentro do programa para arquivos externos, e o parágrafo I-O-CONTROL, que normalmente contém informações de otimização ou sequenciamento para operações de entrada-saída.

Divisão de dados

A divisão de dados abriga todas as variáveis, arquivos e definições constantes para o programa. Assim como a divisão de ambiente, a divisão de dados é subdividida.

A seção de arquivos lista todos os arquivos dos quais o programa lerá ou gravará. Uma entrada de descrição de arquivo define cada arquivo e descreve a estrutura dos registros no arquivo.

A seção de armazenamento de trabalho define variáveis que mantêm seus valores durante a execução do programa — incluindo contadores, acumuladores, constantes e qualquer outro armazenamento de dados que não seja relevante para arquivos I-O.

Introduzida em iterações posteriores do COBOL, a seção de armazenamento local define variáveis alocadas na implantação do programa ou método e desalocadas no término, tornando o armazenamento local especialmente útil para algoritmos recursivos e programas reentrantes.

Finalmente, a seção de ligação define itens de dados que passam de um programa para outro.

Divisão de procedimentos

A divisão de procedimentos contém o código executável do programa, que é dividido em parágrafos e seções que estruturam o código em blocos de código para melhor legibilidade e fácil manutenção.

Componentes adicionais

Cada divisão de um sistema COBOL pode incluir seções e parágrafos, que são análogos a seções e parágrafos em linguagens humanas. As seções são subdivisões lógicas e nomeadas dentro de cada divisão que contêm um ou mais parágrafos; eles servem como unidades modulares de código que podem ser chamadas dentro do programa.

Os parágrafos são coleções de frases, as menores unidades executáveis em um programa COBOL, que servem a uma função específica e são identificadas por um nome exclusivo. Cada instrução ou frase COBOL dentro de um parágrafo começa com um verbo COBOL (como MOVE, DISPLAY e ADD) que indica como o código deve ser executado.

A unidade mais básica e indivisível da linguagem COBOL é um caractere. Cadeias de caracteres são caracteres ou sequências de caracteres contíguos que formam uma palavra COBOL, literal ou entrada de comentário, delimitada por separadores.

Sintaxe COBOL

A sintaxe em inglês do COBOL é auto-documentada e quase autoexplicativa, com ênfase na verbosidade e legibilidade. Esse recurso o diferencia de linguagens terser, como o FORTRAN. Ele também pode suportar vários tipos de dados diferentes (dados numéricos, alfanuméricos e editados, por exemplo), mas depende de alguns componentes sintáticos adicionais para executar um programa.

Frases e depoimentos

As frases são linhas do código COBOL que consistem em uma ou mais comandos terminados por um ponto. As declarações, no entanto, são as instruções individuais que orquestram os processos de tratamento de arquivos e tratamento de dados (usando verbos como ADD, START, DISPLAY e WRITE, entre outros).

Por exemplo, os comandos MOVE transferem dados de uma parte da memória do sistema para outra; os comandos COMPUTE realizam operações aritméticas e armazenam os resultados como variáveis; e os comandos READ recuperam registros de arquivos de entrada.

Cláusulas

Cláusulas são componentes de instruções que podem modificar ou qualificar como um comando é executado. Uma cláusula de imagem como "PIC 9(3)", por exemplo, define uma variável numérica que pode conter até três dígitos.

Estruturas de controle

As estruturas de controle iterativas e condicionais do COBOL permitem que o sistema controle o fluxo de dados.

As estruturas IF ... ELSE, por exemplo, implementam a lógica condicional em COBOL para que o programa possa executar diferentes blocos de código, dependendo de uma avaliação da condição do sistema. E o comando PERFORM executa um parágrafo ou seção um número especificado de vezes ou até que uma condição seja atendida, semelhante aos loops em outras linguagens de programação.

Subprogramas

O COBOL pode facilitar a programação modular usando subprogramas, que são implementados a partir do programa principal ou de outros subprogramas. Enquanto os subprogramas internos são definidos no mesmo código-fonte do programa chamador (escrito na divisão de procedimentos), os subprogramas externos são compilados separadamente e vinculados conforme necessário.

Criando um programa COBOL

O processo de criação de um programa com COBOL varia de acordo com as circunstâncias organizacionais. No entanto, tende a envolver algumas etapas importantes. 

  • Escrevendo o programa. Se um engenheiro de software quisesse escrever o programa básico “Olá, mundo!”, por exemplo, ele escreveria:

    ```

    DIVISÃO DE IDENTIFICAÇÃO. PROGRAM-ID. olá-mundo. DIVISÃO DE PROCEDIMENTOS. DISPLAY "Olá, mundo!"

    Usar um ambiente de desenvolvimento integrado (IDE) compatível com COBOL ou um editor de texto pode ajudar no processo.

  • Compilando o programa. Como outras linguagens de programação de alto nível, o código COBOL deve ser compilado antes de ser executado. Compiladores COBOL (como GnuCOBOL, Micro Focus e IBM COBOL Compiler Family) traduzem programas em código de máquina para que a CPU do computador possa entendê-lo e executá-lo.

  • Executando o programa. Quando o programa é compilado, o programador pode executá-lo no sistema de destino. Supondo que não haja erros, o programa segue a lógica de processamento de dados definida na divisão de procedimentos para processar dados. O processo de execução normalmente envolve a leitura de dados de arquivos e bancos de dados, a realização de cálculos ou transformações de dados e, em seguida, a gravação dos resultados em arquivos ou bancos de dados.

  • Depuração do programa (se necessário). Se houver erros ou bugs no programa, os programadores precisam identificá-los e corrigi-los (um processo chamado depuração). O uso de ferramentas e técnicas de depuração pode agilizar esse processo.
Benefícios da programação COBOL

Apesar da proliferação de linguagens mais modernas (como Python, Java, JavaScript), a linguagem COBOL já foi a mais amplamente usada na programação de computadores para aplicações empresariais. Mesmo agora, o desenvolvimento do COBOL continua sendo uma parte funcional e crítica da infraestrutura de tecnologia global, especialmente para instituições bancárias, seguradoras e agências governamentais.

Como evidenciado pelo seu poder de permanência, a programação COBOL pode oferecer uma infinidade de benefícios às organizações que optam por utilizá-la (apesar de uma relativa escassez de programadores COBOL1), incluindo:

Estabilidade

O COBOL é conhecido por seu desempenho estável e confiável em aplicações de missão crítica. Os sistemas escritos em COBOL tendem a ter alto tempo de atividade e apresentam poucas falhas, o que é vital para as operações ininterruptas de instituições financeiras e serviços governamentais.

Escalabilidade

Os programadores podem escalar as aplicações COBOL para lidar com o aumento das cargas de trabalho sem mudanças significativas na base de código, permitindo que as organizações expandam seus sistemas baseados em COBOL junto com seus negócios e sem reescritas ou migrações frequentes para outros idiomas.

Tratamento de dados e processamento de arquivos

O COBOL oferece recursos excepcionais de processamento de arquivos. Ele pode lidar com dados de transações complexas e em grande escala e oferecer suporte a vários métodos de acesso a arquivos, incluindo o manuseio de arquivos de dados sequenciais, indexados e relativos. A robustez do COBOL na automação de processos o torna ideal para trabalhos de processamento em lote, como o processamento de transações financeiras, o gerenciamento de bancos de dados e a geração de relatórios.

Interoperabilidade

Os sistemas COBOL de hoje podem interoperar com outras linguagens e tecnologias (como HTML, JSON, XML e IA generativa2) devido à introdução do COBOL orientado a objetos e interfaces para novas linguagens de programação. A orientação a objetos também facilita a integração de aplicativos COBOL com serviços virtuais e em nuvem,como Amazon Web Services (AWS), Microsoft Azure e IBM Cloud, bancos de dados SQL e outras infraestruturas DevOps modernas.

Soluções relacionadas
IBM® watsonx Code Assistant for Z

O IBM watsonx Code Assistant for Z é um produto assistido por IA generativa criado para acelerar a modernização dos aplicativos de mainframe a um custo menor e com menos risco do que as alternativas atuais. Esse produto oferece um ciclo de vida de ponta a ponta do desenvolvedor de aplicativos que inclui descoberta e análise de aplicativos, refatoração automatizada de código e conversão de COBOL para Java.

Explore o IBM® watsonx Code Assistant for Z

IBM watsonx Code Assistant

IBM watsonx Code Assistant leverages generative AI to accelerate development while maintaining the principles of trust, security and compliance at its core. Developers and IT Operators can speed up application modernization efforts and generate automation to rapidly scale IT environments.

Explore o IBM watsonx Code Assistant

IBM COBOL Compiler Family

Os compiladores IBM COBOL suportam os sistemas operacionais IBM z/OSIBM AIX e Linux. Você obtém as ferramentas para amplificar o desenvolvimento do seu programa e usar suas aplicações existentes. Você pode posicionar estrategicamente seu processo de desenvolvimento de aplicações para o mercado em rápida mudança de hoje.

Explore o IBM Cobol Compiler Family
 Recursos O assistente de código para Z traz a IA generativa para a modernização de aplicativos mainframe

Assista à gravação sob demanda com nossa equipe para saber como a IA está acelerando a modernização das aplicações mainframe.

Leve a modernização de aplicativos e a automação de TI para o próximo nível com a IA generativa

Saiba como as plataformas de gerenciamento de nuvem híbrida incorporam a automação com infusão de IA generativa para ajudar as empresas a capitalizar as tecnologias emergentes, obter economia de custos e eficiência, melhorar o desempenho de TI e fornecer e dimensionar novos serviços mais rapidamente.

Guia do CEO sobre IA generativa

Entenda a importância de adotar a IA generativa e como ela pode beneficiar suas práticas de negócios, agora e no futuro.

Dê o próximo passo

Pronto para acelerar a modernização das aplicações mainframe, impulsionadas por IA generativa? Veja o que o watsonx Code Assistant for Z pode fazer quando você agendar uma demonstração ao vivo ou conversar com um de nossos especialistas no produto.

Explore o IBM® watsonx Code Assistant for Z Agende uma demonstração em tempo real
Notas de rodapé

1 O mundo depende de código de 60 anos que ninguém sabe mais (link externo a ibm.com), PC Mag, 1 de dezembro de 2023

2 Geração de código de IA generativa (link externo a ibm.com), Inc42 Media, 24 de março de 2024