COBOL 60 anos: A evolução da linguagem

Photo by Ross Findon on Unsplash

O relatório apresentado ao comitê executivo do CODASYL em dezembro de 1959, e a especificação final do Cobol publicado pelo Departamento de Defesa dos EUA em abril de 1960, ainda possuíam ambiguidades e limitações que dificultavam sua implementação pelos fabricantes de hardware da época.

Diversas revisões foram feitas até 1965 para diminuir essas ambiguidades. Além disso, alguns recursos disponíveis na linguagem FACT, da Honeywell, também foram acrescentados à especificação do Cobol nesse primeiros anos.

Em 1962, a IBM anunciou que suspenderia o desenvolvimento do COMTRAN e que o Cobol passaria a ser sua principal linguagem para desenvolvimento de sistemas comerciais. À medida em que os demais fabricantes foram se comprometendo a implementar um compilador da nova linguagem em seus equipamentos, aumentaram os esforços para a sua padronização.

COBOL ANS 68

Tanto a International Standard Organization (ISO) quanto a American Standards Institute (hoje em dia conhecida como American National Standard Institute, ou ANSI) buscaram eliminar as diferenças que existiam entre as versões implementadas por cada fabricante.

Em agosto de 1968, o ANSI publicou a especificação USA Standard COBOL X3.23, que ficou conhecida como COBOL ANS 68.

Essa versão é considerada realmente a primeira especificação oficial da linguagem. Foi adotada por quase todos os fabricantes e finalmente incorporada pela ISO em 1972.

COBOL ANS 74

Em 1970, o Cobol já era a linguagem de programação comercial mais utilizada no mundo. O CODASYL, independentemente da ANSI, continuou trabalhando na evolução da linguagem para atender a uma comunidade de usuários que crescia a cada dia.

Em 1974 o ANSI publicou a especificação que ficou conhecida como COBOL ANS 74, baseada praticamente nas sugestões apresentadas pelo CODASYL.

Em resumo, essa versão trazia as seguintes novidades:

  •  Possibilidade de adoção de diferentes organizações de arquivo;
  • Comando DELETE;
  • Comando EXAMINE (que depois seria substituído pelo INSPECT);
  • Report Writter

A ISO adotou esse mesmo padrão em 1978.

COBOL ISO 85

A versão 74 começou a revisada pela ISO ainda em 1978. Muitas das propostas apresentadas foram rejeitadas pela já então enorme comunidade de usuários da linguagem. A maior preocupação era que as mudanças propostas eram tão grandes que seria difícil garantir a retrocompatibilidade com o gigante portfólio de sistemas que já havia sido desenvolvido.

Muita gente conhece essa versão como COBOL-80, mas ela foi oficialmente publicada pela ISO no final de 1985.

Suas novidades mais importantes foram:

  • A criação de escope terminators (END-IF, END-PERFORM, END-READ…)
  • Comando CONTINUE
  • Comando EVALUATE
  • Comando INITIALIZE
  • PERFORM in-line
  • Uso de substrings no comando MOVE
  • Novos valores de FILE STATUS
  • Screen Section

Em 1989, uma mini-revisão incorporou as funções intrínsecas ao Cobol.

COBOL ISO 2002

Os estudos para incorporar recursos de orientação a objetos no Cobol começaram ainda nos anos 1990, seguindo uma tendência observada em outras linguagens de programação.

Além disso, algumas recomendações que já haviam sido publicadas pelo ANSI e que não foram incorporadas pela ISO em 1985 foram reconsideradas dessa vez.

Dentre as principais novidades nessa versão estão:

  • Padrão free format de codificação. O fim da área A e área B, ainda que esse formato fixo continue sendo suportado por todos os compiladores;
  • Possibilidade de codificação de funções definidas pelo usuário.
  • Recursividade;
  • Novos “usages” para floating-point e binary, aumentando a compatibilidade dos tipos de dados do Cobol com outras plataformas;
  • Novos tipos de dados para bit e boolean.

Algumas revisões adicionais foram realizadas entre 2012 e 2014, basicamente para aumentar a robustez da orientação a objetos da versão 2002.

Conclusão

Até 1985, todas as revisões elaboradas pelo ANSI ou pela ISO incorporaram recursos que, sem dúvida, aumentaram muito a versatilidade do Cobol e a produtividade do programador, sem abrir mão da robustez, elegância e clareza da linguagem.

A versão de 2002 se afastou desse caminho na medida em que tenta incorporar recursos (como a orientação a objetos) a uma liguagem que até agora não me parece compatível com esse modelo. Aqui no portal, escrevi um artigo especificamente sobre essa questão, com exemplos de programas.

Em outras palavras, um Cobol orientado a objeto seria, na minha opinião, outra linguagem de programação. E para isso já existem muitas outras muito mais adaptadas.


Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *