Ir para o conteúdo principal
BiografiaHistória da informáticaIniciante

John Backus: FORTRAN, a notação BNF e a recusa do código de máquina

Como John Backus liderou a criação do FORTRAN, formalizou a sintaxe das linguagens e propôs outra forma de pensar os programas.

Publicado 3 de agosto de 2026Leitura : 6 minPor Yann Bastien
Retrato histórico de John Backus
Mostrar índice
  1. Porque a programação científica continuava dispendiosa
  2. FORTRAN é tanto um compilador como uma linguagem
  3. Uma realização coletiva que muda a economia do software
  4. Descrever a gramática de uma linguagem
  5. Questionar o modelo que ajudara a difundir
  6. Compor programas em vez de gerir cada estado
  7. Um legado que ultrapassa o FORTRAN
  8. Cronologia
  9. Perguntas frequentes
  10. John Backus criou o FORTRAN sozinho?
  11. Porque foi tão importante o primeiro compilador FORTRAN?
  12. Backus inventou a BNF sozinho?
  13. FORTRAN ainda é utilizado?
  14. Porque criticou Backus a programação imperativa?
  15. Qual é a ligação entre Backus e Grace Hopper?

No início da década de 1950, programar um cálculo científico significava frequentemente traduzir cada fórmula numa longa sequência de instruções específicas de um computador. John Backus queria eliminar esse trabalho mecânico. A equipa que liderou na IBM criou o FORTRAN, uma linguagem que permitia escrever fórmulas numa forma reconhecível e traduzi-las automaticamente.

O desafio não era apenas criar uma notação mais legível. Os cientistas sabiam otimizar assembly diretamente e desconfiavam de um programa que escrevesse código por eles. Para ser adotado, o compilador FORTRAN tinha de produzir programas quase tão rápidos como os de especialistas humanos.

Backus dedicaria depois a carreira a duas outras questões: como descrever rigorosamente a sintaxe de uma linguagem e como ultrapassar um modelo de programação baseado na alteração sucessiva da memória.

Porque a programação científica continuava dispendiosa

John Warner Backus nasceu em 1924, em Filadélfia. Depois de um percurso escolar irregular e do serviço militar, virou-se para a matemática e obteve em 1950 um mestrado na Universidade Columbia.

Nesse ano visitou a IBM e conheceu o Selective Sequence Electronic Calculator. Uma conversa improvisada levou à sua contratação. Trabalhou em programas matemáticos e no Speedcoding, que simplificava certos cálculos no IBM 701.

O Speedcoding melhorava a produtividade, mas a interpretação tornava a execução mais lenta. Os programadores continuavam por isso a escrever código de máquina ou assembly, com semanas de trabalho e muitos erros.

Em 1953, Backus propôs à IBM um sistema mais ambicioso: os utilizadores escreveriam fórmulas próximas da notação matemática e um compilador produziria um programa eficiente para o futuro IBM 704.

FORTRAN é tanto um compilador como uma linguagem

Backus reuniu uma equipa com competências em matemática, programação e arquitetura de computadores. Entre os membros estavam Harlan Herrick, Irving Ziller, Peter Sheridan, Roy Nutt, Robert Nelson e Lois Haibt. Nenhuma pessoa poderia sozinha conceber a linguagem, otimizar o compilador e testar todas as formas de cálculo.

FORTRAN vem de Formula Translation. A linguagem permitia expressões aritméticas, ciclos e desvios sem manipular diretamente os códigos do IBM 704. O programador descrevia o cálculo; o compilador escolhia as instruções da máquina.

A tradução tinha de preservar o desempenho. A equipa desenvolveu técnicas de análise e otimização para organizar cálculos e registos. O primeiro compilador exigiu vários anos de trabalho e era enorme para a época.

Quando o FORTRAN foi entregue em 1957, a sua eficiência reduziu o principal argumento a favor do assembly. Os cientistas podiam dedicar mais tempo ao modelo matemático e menos aos detalhes do processador. O desenvolvimento tornou-se mais rápido e a linguagem pôde ser adaptada a outras máquinas.

Uma realização coletiva que muda a economia do software

Apresentar Backus como único criador do FORTRAN seria enganador. Ele propôs o projeto, liderou a equipa e participou na conceção, mas a linguagem e o compilador resultaram de trabalho coletivo.

O seu papel foi decisivo porque conciliou dois objetivos difíceis: aproximar o código da matemática sem sacrificar velocidade. O sucesso demonstrou que uma linguagem de alto nível podia servir para cálculos reais.

O FORTRAN difundiu-se em laboratórios, indústria e universidades. O código científico passou a poder sobreviver ao computador para o qual tinha sido escrito. Versões posteriores melhoraram portabilidade e estrutura, preservando um vasto património de software numérico.

A história do FORTRAN acompanha essa evolução. A biografia de Backus esclarece o problema inicial: tornar a tradução automática aceitável para programadores convencidos de que apenas o código manual podia ser eficiente.

Descrever a gramática de uma linguagem

Depois do FORTRAN, Backus participou nas discussões internacionais sobre ALGOL 58 e ALGOL 60. Era necessário descrever sem ambiguidade quais sequências de símbolos formavam programas válidos.

Backus propôs uma notação formal em que cada categoria sintática era definida por regras de substituição. Peter Naur adaptou o método para o relatório ALGOL 60. Tornou-se a forma Backus-Naur, ou BNF.

A BNF separa a sintaxe da implementação: a primeira define a forma permitida; a segunda decide como analisá-la e executá-la. Variantes da BNF continuam a documentar linguagens, formatos e protocolos.

Questionar o modelo que ajudara a difundir

O FORTRAN melhorou radicalmente a programação imperativa, mas Backus acabou por considerar esse modelo demasiado ligado à estrutura dos computadores de programa armazenado.

Na conferência do Prémio Turing de 1977, Can Programming Be Liberated from the von Neumann Style?, criticou o chamado gargalo de von Neumann. Os programas deslocam continuamente valores entre processador e memória, e o raciocínio depende de uma sucessão de mudanças de estado.

Backus apresentou FP, um sistema baseado na composição de funções. Em vez de detalhar cada atualização, o programa combina transformações. O objetivo era tornar as propriedades do cálculo mais fáceis de compreender matematicamente.

FP não substituiu as linguagens imperativas, mas mostrou que o homem que liderara um dos seus primeiros grandes sucessos também reconhecia os seus limites.

Compor programas em vez de gerir cada estado

Em FP, as funções são combinadas por formas funcionais: composição, construção de pares, aplicação de uma operação a todos os elementos ou redução de uma sequência a um valor.

Para calcular a soma dos quadrados de uma lista, uma solução imperativa cria um total e atualiza-o durante o percurso. Uma descrição composicional exprime transformações: elevar cada número ao quadrado e somar os resultados. O cálculo é apresentado pelas relações, não pela ordem detalhada das atribuições.

Backus esperava poder raciocinar sobre programas com regras algébricas. A ideia antecipa técnicas modernas de otimização, fluxo de dados e paralelização, embora FP tenha tido pouca adoção.

Um legado que ultrapassa o FORTRAN

Backus recebeu o Prémio Turing em 1977 pelas contribuições para linguagens de alto nível, sistemas de compilação e especificação. Continuou como IBM Fellow até à reforma em 1991 e morreu em 2007.

O seu legado liga três níveis. FORTRAN mostra que uma linguagem mais abstrata pode produzir código eficiente. BNF permite definir precisamente a forma da linguagem. FP pergunta se a maneira dominante de escrever programas é realmente a melhor.

Os compiladores modernos prolongam a primeira questão, as gramáticas formais a segunda e a programação funcional a terceira.

Cronologia

  • 1924: nascimento de John Warner Backus em Filadélfia.
  • 1950: mestrado em matemática na Columbia e entrada na IBM.
  • Início dos anos 1950: desenvolvimento do Speedcoding para o IBM 701.
  • 1953: proposta de um sistema de tradução de fórmulas para o IBM 704.
  • 1954: formação da equipa FORTRAN.
  • 1957: entrega do primeiro compilador FORTRAN.
  • 1958–1960: contribuição para ALGOL e para a notação que se tornaria BNF.
  • 1963: nomeação como IBM Fellow.
  • 1977: Prémio Turing e conferência sobre os limites do estilo von Neumann.
  • 1991: reforma da IBM.
  • 2007: morte em Ashland, Oregon.

Perguntas frequentes

John Backus criou o FORTRAN sozinho?

Não. Propôs o projeto e liderou a equipa da IBM, mas linguagem e compilador foram uma realização coletiva.

Porque foi tão importante o primeiro compilador FORTRAN?

Uma linguagem mais legível não seria adotada se os programas fossem muito mais lentos do que em assembly. As otimizações mostraram que tradução automática, produtividade e desempenho podiam coexistir.

Backus inventou a BNF sozinho?

Propôs a notação inicial para ALGOL. Peter Naur adaptou-a para o relatório ALGOL 60. O nome Backus-Naur reconhece ambos os contributos.

FORTRAN ainda é utilizado?

Sim. As versões modernas continuam presentes no cálculo científico e em grandes bibliotecas numéricas consolidadas.

Porque criticou Backus a programação imperativa?

Considerava os programas centrados na alteração da memória difíceis de compor e analisar. FP explorava a composição de funções.

Qual é a ligação entre Backus e Grace Hopper?

As duas equipas procuravam afastar os programadores do código de máquina: FORTRAN para cálculo científico, FLOW-MATIC e COBOL sobretudo para dados empresariais.

Este artigo foi útil?

Fontes e referências

  1. 1.IBM - John Backus
  2. 2.Computer History Museum - John Backus
  3. 3.IBM - The FORTRAN Automatic Coding System
  4. 4.ACM - Can Programming Be Liberated from the von Neumann Style?
  5. 5.Library of Congress - John W. Backus Papers

Coleção

Linguagens de programação

2 / 26

  1. 01Grace Hopper: dos primeiros compiladores ao COBOL
  2. 02John Backus: FORTRAN, a notação BNF e a recusa do código de máquina
  3. 03Dennis Ritchie: a linguagem C no coração do Unix
  4. 04FORTRAN: provar que um compilador pode competir com assembly
  5. 05A linguagem C: tornar os sistemas portáteis sem esconder a máquina
  6. 06Niklaus Wirth: de Pascal a Oberon, conceber pela simplicidade
  7. 07Bjarne Stroustrup: conceber C++ sem abdicar do desempenho
  8. 08Pascal: aprender a programar tornando a estrutura visível
  9. 09C++: de C with Classes ao C++ moderno
  10. 10Programação orientada a objetos: objetos, mensagens e abstrações reutilizáveis
  11. 11Guido van Rossum: criar Python para tornar o código legível
  12. 12Brendan Eich: JavaScript, do protótipo da Netscape ao padrão da Web
  13. 13James Gosling: o engenheiro na origem de Java
  14. 14Python: legibilidade, baterias incluídas e um ecossistema global
  15. 15Java: escrever uma vez, executar em qualquer lugar
  16. 16JavaScript: a linguagem que tornou a Web interativa
  17. 17Ken Thompson: de Unix a Go, a simplicidade como método
  18. 18John McCarthy: Lisp e a ideia de programar com símbolos
  19. 19Alan Kay: Smalltalk e o computador como meio pessoal
  20. 20Barbara Liskov: a abstração que tornou o software modular
  21. 21Robin Milner: ML, prova assistida e linguagens da interação
  22. 22Brian Kernighan: AWK, Unix e a arte de explicar código
  23. 23Anders Hejlsberg: de Turbo Pascal a C# e TypeScript
  24. 24Larry Wall: Perl, a linguagem que ligou as ferramentas da Internet
  25. 25Yukihiro Matsumoto: Ruby e a felicidade do programador
  26. 26Rasmus Lerdorf: PHP e a democratização da Web dinâmica
BiografiaHistória da informáticaIniciante

Grace Hopper: dos primeiros compiladores ao COBOL

Como Grace Hopper ajudou a transformar a programação ao fazer traduzir instruções mais legíveis para a linguagem das máquinas.

3 de agosto de 20265 min