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

FORTRAN: provar que um compilador pode competir com assembly

Como a equipa de John Backus criou FORTRAN, convenceu cientistas a usar uma linguagem de alto nível e fundou um legado duradouro de computação numérica.

Publicado 3 de agosto de 2026Leitura : 6 minPor Yann Bastien
Ilustração de fórmulas científicas traduzidas por um compilador FORTRAN
Mostrar índice
  1. O custo escondido dos primeiros computadores
  2. Uma equipa, uma linguagem e um compilador
  3. Porque a otimização era uma condição de adoção
  4. Dos dialetos à normalização
  5. Uma linguagem concebida para arrays
  6. FORTRAN, COBOL e o alargamento da programação
  7. Porque Fortran continua importante
  8. Cronologia
  9. Perguntas frequentes
  10. John Backus criou FORTRAN sozinho?
  11. Porque era excecional o primeiro compilador?
  12. FORTRAN e Fortran designam a mesma linguagem?
  13. Porque se conserva código Fortran antigo?
  14. Fortran está limitado a computadores antigos?
  15. Qual é a principal diferença entre FORTRAN e COBOL?

No início da década de 1950, a maioria dos cientistas programava em linguagem de máquina ou assembly. Uma fórmula matemática tinha de ser decomposta em instruções específicas de um computador, com gestão explícita de registos e endereços. O cálculo era rápido depois de o programa estar pronto, mas a preparação podia demorar semanas.

A equipa da IBM liderada por John Backus propôs uma rutura: escrever as fórmulas numa notação mais próxima da matemática e deixar um programa traduzi-las. FORTRAN, abreviação de Formula Translation, só teve êxito porque o seu compilador produzia código suficientemente eficiente para competir com especialistas em assembly.

O custo escondido dos primeiros computadores

O tempo de máquina era caro, mas o tempo dos programadores também. À medida que os computadores aceleravam, a preparação dos programas representava uma parte crescente do custo de um cálculo.

Backus começou por trabalhar no Speedcoding para o IBM 701. O sistema oferecia operações práticas, incluindo aritmética de vírgula flutuante, mas interpretava as instruções e reduzia fortemente a velocidade de execução. Mostrou que uma notação mais acessível era útil, confirmando ao mesmo tempo que os cientistas não aceitariam uma perda importante de desempenho.

Em 1953, Backus propôs um sistema de tradução para o IBM 704. A máquina dispunha de aritmética de vírgula flutuante por hardware e registos de índice, mas explorá-los de forma eficiente exigia uma organização complexa do código.

Uma equipa, uma linguagem e um compilador

A IBM reuniu uma equipa com competências complementares. Harlan Herrick, Irving Ziller, Peter Sheridan, Roy Nutt, Robert Nelson, Lois Haibt e outros contribuíram para a sintaxe, análise, otimização e testes.

A linguagem oferecia expressões aritméticas, ciclos e desvios adequados ao cálculo numérico. A forma inicial ainda refletia o hardware e os cartões perfurados: colunas reservadas, etiquetas numéricas e a instrução GO TO.

A inovação decisiva estava no compilador. Este analisava dependências entre cálculos, organizava a utilização dos registos e procurava reduzir operações repetidas. O objetivo não era apenas produzir um programa correto, mas um programa cuja velocidade não desse vontade de regressar ao assembly.

Entregue em 1957, o compilador superou as expectativas de muitos utilizadores. O tempo de programação diminuiu drasticamente e FORTRAN difundiu-se juntamente com os computadores IBM.

Porque a otimização era uma condição de adoção

Uma linguagem de alto nível cria distância entre aquilo que o programador escreve e aquilo que o processador executa. Hoje essa tradução parece normal; em 1957, confiar decisões de otimização a um programa era uma aposta.

FORTRAN demonstrou que um compilador podia realizar parte do trabalho mecânico melhor e de forma mais regular do que uma pessoa, sobretudo em programas grandes. Este sucesso alterou a economia do software: o computador deixou de servir apenas para executar o cálculo final e passou também a ajudar a fabricar o programa.

A produtividade não eliminou a necessidade de compreender os métodos numéricos. Uma fórmula instável ou um modelo incorreto continuam errados, qualquer que seja a qualidade do compilador. FORTRAN separou melhor a expressão científica dos detalhes do processador; não substituiu o conhecimento do domínio.

Dos dialetos à normalização

O sucesso produziu rapidamente várias versões. FORTRAN II acrescentou, entre outras coisas, a compilação separada de subprogramas. FORTRAN IV clarificou a linguagem e difundiu-se amplamente, enquanto os fabricantes também propunham extensões próprias.

Esta fragmentação ameaçava a portabilidade. Uma norma norte-americana surgiu em 1966 e revisões posteriores estruturaram a evolução da linguagem. FORTRAN 77 generalizou várias práticas; Fortran 90 introduziu sintaxe livre, arrays mais expressivos, módulos e ferramentas de programação estruturada.

A grafia oficial passou de FORTRAN para Fortran durante esta modernização, sem criar uma nova linguagem. Versões posteriores acrescentaram programação orientada a objetos, concorrência e melhor interoperabilidade com C.

A compatibilidade continuou a ser um objetivo importante. Modelos científicos validados durante décadas representam conhecimento caro de reconstruir. Fazê-los evoluir progressivamente é muitas vezes mais seguro do que reescrevê-los por completo.

Uma linguagem concebida para arrays

A computação científica manipula frequentemente vetores, matrizes e grelhas. Fortran permite exprimir diretamente operações sobre arrays inteiros, fornecendo ao compilador informações úteis para vetorizar ou paralelizar o cálculo.

O seu modelo também facilita algumas análises de alias: o compilador consegue determinar com maior frequência se dois nomes designam a mesma zona de memória. Esse conhecimento permite reorganizar operações sem alterar o resultado.

Estas propriedades explicam que Fortran continue competitivo na simulação climática, dinâmica de fluidos, física e outras áreas da computação de alto desempenho. A sua longevidade não resulta apenas de código antigo, mas de uma especialização continuamente mantida.

FORTRAN, COBOL e o alargamento da programação

FORTRAN e o trabalho de Grace Hopper respondiam ao mesmo obstáculo: o código de máquina limitava o número de pessoas capazes de transformar um problema em software.

Os seus domínios iniciais eram diferentes. FORTRAN privilegiava fórmulas e desempenho numérico. FLOW-MATIC e depois COBOL privilegiavam ficheiros, registos e o vocabulário das organizações. Em conjunto, estes projetos mostraram que uma linguagem podia ser adaptada a uma categoria de problemas em vez de a uma máquina específica.

ALGOL, Lisp, Pascal e C continuaram esta separação entre intenção e hardware com outras prioridades: descrição de algoritmos, cálculo simbólico, ensino estruturado ou programação de sistemas.

Porque Fortran continua importante

Fortran mostra que uma linguagem não precisa de abandonar o seu passado para continuar moderna. Pode preservar programas comprovados enquanto acrescenta abstrações, normas e ferramentas adaptadas a novas máquinas.

A sua contribuição histórica mais ampla foi tornar credível a compilação com otimização. Hoje os programadores usam linguagens muito mais abstratas porque os compiladores aprenderam a transformar intenções em código eficiente. FORTRAN forneceu uma das primeiras demonstrações decisivas dessa possibilidade.

Cronologia

  • 1953: John Backus propõe à IBM um sistema de tradução de fórmulas.
  • 1954: é formada a equipa FORTRAN para o IBM 704.
  • 1957: é entregue o primeiro compilador FORTRAN.
  • 1958: FORTRAN II facilita o uso de subprogramas compilados separadamente.
  • 1962: FORTRAN IV racionaliza a linguagem.
  • 1966: é publicada a primeira norma norte-americana.
  • 1978: FORTRAN 77 é normalizado.
  • 1991: é publicado Fortran 90 e adotada a grafia modernizada.
  • 2003: Fortran 2003 acrescenta, entre outros, mecanismos orientados a objetos.
  • Hoje: Fortran continua a ser utilizado na computação científica e de alto desempenho.

Perguntas frequentes

John Backus criou FORTRAN sozinho?

Não. Propôs o projeto e liderou uma equipa da IBM composta por muitos especialistas. A linguagem e, sobretudo, o compilador foram realizações coletivas.

Porque era excecional o primeiro compilador?

Tinha de otimizar suficientemente bem para convencer cientistas habituados a controlar cada instrução. As suas técnicas estabeleceram a credibilidade das linguagens de alto nível para computação de alto desempenho.

FORTRAN e Fortran designam a mesma linguagem?

Sim. Fortran tornou-se a grafia oficial nas versões modernas. Assinala uma evolução importante sem romper a linhagem histórica.

Porque se conserva código Fortran antigo?

Contém frequentemente modelos numéricos testados e validados durante décadas. Uma reescrita pode introduzir erros científicos difíceis de detetar.

Fortran está limitado a computadores antigos?

Não. Compiladores modernos destinam-se a processadores atuais e supercomputadores, e a linguagem inclui módulos, arrays expressivos, objetos e ferramentas de concorrência.

Qual é a principal diferença entre FORTRAN e COBOL?

FORTRAN foi inicialmente concebido para cálculos científicos; COBOL para processamento de dados empresariais. Ambos procuraram libertar os programas do código de máquina.

Este artigo foi útil?

Fontes e referências

  1. 1.IBM --- The FORTRAN Automatic Coding System
  2. 2.John Backus et al. --- The FORTRAN Automatic Coding System
  3. 3.Computer History Museum --- John Backus
  4. 4.Fortran-lang --- Fortran history

Coleção

Linguagens de programação

4 / 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