Vai al contenuto principale
Bethemesh
StoriaStoria dell’informatica

FORTRAN: proving that a compiler could compete with assembly

How John Backus's team created FORTRAN, persuaded scientists to adopt a high-level language, and founded a lasting heritage of numerical computing.

Pubblicato 3 agosto 2026Lettura : 5 minDi Bethemesh Team
Principiante
Illustration of scientific formulas translated by a FORTRAN compiler
Mostra indice
  1. The hidden cost of early computers
  2. One team, a language, and a compiler
  3. Why optimization was required for adoption
  4. From dialects to standardization
  5. A language built for arrays
  6. FORTRAN, COBOL, and broader access to programming
  7. Why Fortran still matters
  8. Timeline
  9. Frequently asked questions
  10. Did John Backus create FORTRAN alone?
  11. Why was the first compiler exceptional?
  12. Do FORTRAN and Fortran name the same language?
  13. Why is old Fortran code preserved?
  14. Is Fortran limited to old computers?
  15. What is the main difference between FORTRAN and COBOL?

In the early 1950s, most scientists programmed in machine code or assembly. A mathematical formula had to be decomposed into computer-specific instructions with explicit handling of registers and addresses. Execution was fast once the program existed, but preparation could take weeks.

The IBM team led by John Backus proposed a break with this practice: write formulas in notation closer to mathematics, then let a program translate them. FORTRAN, short for Formula Translation, succeeded only because its compiler generated code efficient enough to compete with assembly specialists.

The hidden cost of early computers

Machine time was expensive, but programmer time was too. As computers accelerated, preparing programs represented a growing share of a calculation’s cost.

Backus first worked on Speedcoding for the IBM 701. It offered convenient operations, including floating-point arithmetic, but interpreted instructions and sharply reduced execution speed. It showed the value of accessible notation while confirming that scientists would not accept a major performance loss.

In 1953, Backus proposed a translation system for the IBM 704. The machine provided hardware floating-point arithmetic and index registers, but using them efficiently required complex code organization.

One team, a language, and a compiler

IBM assembled a team with complementary skills. Harlan Herrick, Irving Ziller, Peter Sheridan, Roy Nutt, Robert Nelson, Lois Haibt, and others contributed to syntax, analysis, optimization, and testing.

The language offered arithmetic expressions, loops, and branches suited to numerical work. Its early form still reflected hardware and punched cards through reserved columns, numeric labels, and the GO TO statement.

The decisive innovation was the compiler. It analyzed dependencies, organized register use, and reduced repeated operations. The goal was not merely correct output, but speed that would remove any desire to return to assembly.

Delivered in 1957, the compiler exceeded many users’ expectations. Programming time fell dramatically, and FORTRAN spread with IBM computers.

Why optimization was required for adoption

A high-level language creates distance between source text and processor instructions. That translation seems ordinary today; in 1957, trusting software with optimization decisions was a gamble.

FORTRAN showed that a compiler could perform mechanical work more consistently than a person, especially on large programs. This changed software economics: the computer no longer only executed the final calculation; it helped manufacture the program.

Productivity did not replace numerical expertise. An unstable formula or incorrect model remains wrong regardless of compiler quality. FORTRAN separated scientific expression from processor detail; it did not replace domain knowledge.

From dialects to standardization

Success quickly produced versions and extensions. FORTRAN II added separate compilation of subprograms. FORTRAN IV clarified the language and spread widely, while manufacturers introduced proprietary features.

Fragmentation threatened portability. A US standard appeared in 1966, and later revisions organized the language’s evolution. FORTRAN 77 generalized established practice. Fortran 90 introduced free-form source, richer arrays, modules, and structured-programming tools.

The official spelling changed from FORTRAN to Fortran as part of modernization, without creating a separate language. Later editions added object-oriented facilities, concurrency, and better C interoperability.

Compatibility remained important. Scientific models validated over decades embody knowledge that is expensive to reconstruct. Gradual evolution is often safer than a complete rewrite.

A language built for arrays

Scientific computing frequently handles vectors, matrices, and grids. Fortran expresses operations on whole arrays, giving compilers information useful for vectorization and parallelization.

Its model also makes some alias analysis easier: a compiler can more often establish whether names refer to the same memory. That knowledge permits reordering operations without changing results.

These properties keep Fortran competitive in climate simulation, fluid dynamics, physics, and other high-performance fields. Its longevity comes not only from old code, but from maintained specialization.

FORTRAN, COBOL, and broader access to programming

FORTRAN and Grace Hopper’s work addressed the same obstacle: machine code limited how many people could turn a problem into software.

Their initial domains differed. FORTRAN emphasized formulas and numerical performance. FLOW-MATIC and COBOL emphasized files, records, and organizational vocabulary. Together they showed that a language could target a category of problems rather than one machine.

ALGOL, Lisp, Pascal, and C continued separating intention from hardware with different priorities: algorithm description, symbolic computation, structured education, or systems programming.

Why Fortran still matters

Fortran shows that a language need not discard its past to remain modern. It can preserve proven programs while adding abstractions, standards, and tools for new machines.

Its broadest historical contribution was making optimizing compilation credible. Developers now use far more abstract languages because compilers learned to turn intentions into efficient code. FORTRAN supplied one of the first decisive demonstrations.

Timeline

  • 1953: John Backus proposes a formula-translation system at IBM.
  • 1954: The FORTRAN team for the IBM 704 is formed.
  • 1957: The first FORTRAN compiler is delivered.
  • 1958: FORTRAN II supports separately compiled subprograms.
  • 1962: FORTRAN IV rationalizes the language.
  • 1966: The first US standard is published.
  • 1978: FORTRAN 77 is standardized.
  • 1991: Fortran 90 is published with the modernized spelling.
  • 2003: Fortran 2003 adds object-oriented mechanisms.
  • Today: Fortran remains active in scientific and high-performance computing.

Frequently asked questions

Did John Backus create FORTRAN alone?

No. He proposed and led an IBM team of specialists. The language and especially its compiler were collective achievements.

Why was the first compiler exceptional?

It had to optimize well enough to persuade scientists accustomed to controlling every instruction. Its techniques established high-level languages as credible for performance.

Do FORTRAN and Fortran name the same language?

Yes. Fortran became the official modern spelling. It marks substantial evolution without breaking the historical lineage.

Why is old Fortran code preserved?

It often contains numerical models tested and validated for decades. Rewriting them may introduce subtle scientific errors.

Is Fortran limited to old computers?

No. Modern compilers target current processors and supercomputers, and the language includes modules, rich arrays, objects, and concurrency tools.

What is the main difference between FORTRAN and COBOL?

FORTRAN initially targeted scientific calculation; COBOL targeted business data processing. Both sought to free programs from machine code.

Fonti e riferimenti

  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

Raccolta

Linguaggi di programmazione

  1. 01Grace Hopper: from early compilers to COBOL
  2. 02John Backus: FORTRAN, BNF, and the rejection of machine code
  3. 03Dennis Ritchie: the C language at the heart of Unix
  4. 04FORTRAN: proving that a compiler could compete with assembly
  5. 05The C language: making systems portable without hiding the machine
  6. 06Niklaus Wirth: from Pascal to Oberon, designing through simplicity
  7. 07Bjarne Stroustrup: designing C++ without giving up performance
  8. 08Pascal: learning to program by making structure visible
  9. 09C++: from C with Classes to a general-purpose language
  10. 10Object-oriented programming: objects, messages, and reusable abstractions
  11. 11Guido van Rossum: creating Python to make code readable
  12. 12Brendan Eich: JavaScript, from Netscape prototype to Web standard
  13. 13James Gosling: the engineer behind Java
  14. 14Python: readability, batteries included, and a global ecosystem
  15. 15Java: write once, run anywhere
  16. 16JavaScript: the language that made the Web interactive
  17. 17Ken Thompson: from Unix to Go, simplicity as a method
  18. 18John McCarthy: Lisp and the idea of programming with symbols
  19. 19Alan Kay: Smalltalk and the computer as a personal medium
  20. 20Barbara Liskov: the abstraction that made software modular
  21. 21Robin Milner: ML, machine-assisted proof, and languages of interaction
  22. 22Brian Kernighan: AWK, Unix, and the art of explaining code
  23. 23Anders Hejlsberg: from Turbo Pascal to C# and TypeScript
  24. 24Larry Wall: Perl, the language that connected the tools of the Internet
  25. 25Yukihiro Matsumoto: Ruby and programmer happiness
  26. 26Rasmus Lerdorf: PHP and the democratization of the dynamic Web
BiografiaStoria dell’informaticaPrincipiante

Grace Hopper: from early compilers to COBOL

Discover how Grace Hopper helped transform programming by making computers translate readable instructions into machine operations.

3 agosto 20266 minLeggi

Questo articolo ti è stato utile?