O que é COBOL?

Estrutura de telhado metálico do teto de prédio comercial

Autores

Chrystal R. China

Staff Writer, Automation & ITOps

IBM Think

Michael Goodwin

Staff Editor, Automation & ITOps

IBM Think

O que é COBOL?

Common business-oriented language (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 possibilita que os programadores utilizem 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).

Um dos maiores pontos fortes do COBOL é seu forte suporte para cálculos decimais de ponto fixo de grande precisão, uma funcionalidade não necessariamente nativa de muitas linguagens de programação tradicionais. Esse recurso ajudou a diferenciar o COBOL e impulsionar sua adoção por muitas grandes instituições financeiras.

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 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.

As mais recentes notícias de tecnologia, corroboradas por insights de especialistas.

Mantenha-se atualizado sobre as tendências mais importantes e fascinantes do setor em IA, automação, dados e muito mais com o boletim informativo da Think. Consulte a declaração de privacidade da IBM.

Agradecemos a você! Você se inscreveu.

Sua inscrição será entregue em inglês. Você pode encontrar um link para cancelar a inscrição em todos os boletins informativos. Você pode gerenciar suas inscrições ou cancelar a inscrição aqui. Consulte nossa declaração de privacidade da IBM para obter mais informações.

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. O COBOL 2002 visava tornar as aplicações COBOL mais compatíveis com as práticas modernas de desenvolvimento de software, introduzindo recursos orientados a objetos e outros paradigmas de programação avançados na linguagem. Esta versão, no entanto, sofria com a falta de suporte e demanda dos usuários por suas novas funcionalidades. 

O COBOL 14 introduziu novas mudanças, incluindo a substituição de resultados aritméticos portáteis por tipos de dados IEEE 754, e o padrão mais recente, COBOL 2023, disponibilizou funcionalidades adicionais focados na melhoria da interoperabilidade do COBOL com sistemas modernos.

Desenvolvimento de aplicações

Venha conosco: desenvolvimento de aplicações para empresas na nuvem

Neste vídeo, o Dr. Peter Haumer explica como é o desenvolvimento atual das aplicações empresariais modernas na nuvem híbrida, demonstrando diferentes componentes e práticas, incluindo o IBM® Z Open Editor, o IBM Wazi e o Zowe. 

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:

IDENTIFICATION DIVISION.

PROGRAM-ID. YourProgramName

AUTHOR. Your name

DATE-WRITTEN. YYYYMMDD

COMMENT. "Short description of the program"

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.

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

IDENTIFICATION DIVISION.  PROGRAM-ID.   hello-world.   PROCEDURE DIVISION.   DISPLAY  "Hello, world!"    

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

Compilar o programa. Assim como outras linguagens de programação de alto nível, o código COBOL deve ser compilado para 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ê-los e executá-los.

Executar 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 os 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.

Depurar o 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

Agora menos popular do que linguagens mais modernas (como Python, Java e JavaScript), o COBOL já foi a linguagem mais utilizada na programação de computadores para aplicações empresariais. No entanto, 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 ampliar as aplicações em 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 a reformulação de códigos ou migrações frequentes para outras linguagens.

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. Por meio de atualizações de modernização, o COBOL também pode ser operado com serviços virtuais e em nuvem, como Amazon web Services (AWS), Microsoft Azure e IBM® Cloud, bancos de dados SQL e outras infraestruturas modernas de DevOps .

Soluções relacionadas
Servidores IBM® Power  

IBM Power é uma família de servidores baseados nos processadores IBM Power e são capazes de executar IBM AIX, IBM i e Linux.

Explore o Power
IBM Cloud. Híbrida. Aberta. Resiliente.

O IBM Cloud é uma plataforma de nuvem corporativa projetada para setores regulamentados, fornecendo soluções híbridas, seguras e prontas para IA.

Explore as soluções de nuvem
Serviços de consultoria em nuvem

Libere novos recursos e aumente a agilidade dos negócios com os serviços de consultoria em nuvem da IBM. Descubra como cocriar soluções, acelerar a transformação digital e otimizar o desempenho por meio de estratégias de nuvem híbrida e parcerias com especialistas.

Explore os serviços de nuvem
Dê o próximo passo

IBM Cloud: pronto para IA, seguro e híbrido por design. Uma plataforma de nuvem corporativa projetada para até mesmo os setores mais regulamentados, oferecendo uma nuvem altamente resiliente, de alto desempenho, segura e em conformidade.

Explore as soluções de nuvem Veja mais informações