Publicado em 19 de abril de 2024
Contribuidores: Chrystal R. China, Michael Goodwin
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.
Consulte IBM watsonx Code Assistant for Z em ação.
Assine a newsletter da IBM
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.
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:
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"
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.
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.
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.
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.
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.
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 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.
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.
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.
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.
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:
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.
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.
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.
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.
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.
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.
Os compiladores IBM COBOL suportam os sistemas operacionais IBM z/OS, IBM 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.
Assista à gravação sob demanda com nossa equipe para saber como a IA está acelerando a modernização das aplicações mainframe.
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.
Entenda a importância de adotar a IA generativa e como ela pode beneficiar suas práticas de negócios, agora e no futuro.
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