T1
FORTRAN Released

Metadata
- Date
- Decade
- 1950s
- Tier
- T1
- Sources
- 06
- Connections
- 02
Fortran is a programming language for scientific and engineering computation, in which formulas are written in something close to ordinary mathematical notation and a compiler translates them into machine code. The name comes from the IBM Mathematical FORmula TRANslating System. It was proposed by John Backus at IBM in late 1953, developed by his team from 1954, and the first compiler, for the IBM 704, was distributed to 704 installations in April 1957. Until Fortran 90 made it "Fortran", the name was written in capitals.
Backus told the story himself in "The History of FORTRAN I, II, and III", written for ACM's first History of Programming Languages conference in 1978. Most of what follows comes from that paper.
The problem: programming cost more than the computer
In the early 1950s, Backus wrote, almost all programming was done in machine or assembly language. He estimated that programming and debugging could account for as much as three quarters of the cost of operating a computer — and that as computers got cheaper, the share would only grow. That economic argument, he said, was a prime motivation when he proposed the project in a letter to his manager, Cuthbert Hurd, in late 1953. The exact date is lost; he thought December 1953 likely.
Hurd approved it in December 1953 or January 1954, and Irving Ziller joined. Harlan Herrick and Robert A. Nelson followed by May 1954. The IBM 704, the machine they were targeting, had been announced at about the same time.
The decision that defined FORTRAN
Compiling algebra was not new. Backus himself named the Laning and Zierler system at MIT, which ran on Whirlwind, as "the world's first operating algebraic compiler" (Knuth and Pardo, he noted, gave that honour to Alick Glennie's AUTOCODE instead). He also corrected his own earlier claims: he had long believed FORTRAN took the idea of algebraic notation from a demonstration of Laning and Zierler's system, but a 1954 letter showed the FORTRAN plans were already well advanced when his team first saw it.
What made FORTRAN different was where the team put its effort.
| The common view of 1954 | The FORTRAN team's bet |
|---|---|
| Automatic programming systems slowed the machine by a factor of five or ten | That cost was no longer acceptable on the 704 |
| On earlier machines, slow floating-point subroutines hid inefficiency elsewhere | The 704 had floating point and index registers in hardware, leaving inefficiencies "nowhere to hide" |
| Designing the language was the hard part | Designing the language was easy; the translator was the real challenge |
Backus wrote that if FORTRAN, in its first months, produced object programs only half as fast as hand-coded ones, acceptance "would be in serious danger". So the compiler was built to optimise. Of the analysis done by the compiler's second section, he wrote that the code it produced would "startle the programmers who studied it": it moved code out of loops, exploited the difference between row-wise and column-wise scans, and even optimised loop exits. IBM's own history of the language describes this as the first optimizing compiler; that is IBM's claim.
"About six months"
The specification came first: "Preliminary Report, Specifications for the IBM Mathematical FORmula TRANslating System, FORTRAN", dated 10 November 1954. In late 1954 and early 1955 Backus, Herrick and Ziller gave five or six talks to customers who had ordered 704s. They promised the compiler in about six months. That remained the promised interval until it was finished, over two years later, in April 1957. The audiences were mostly sceptical.
The Programmer's Reference Manual for "The FORTRAN Automatic Coding System for the IBM 704" is dated 15 October 1956, six months before the system existed for customers.
April 1957: distribution
In early April 1957 the team judged the system bug-free enough to distribute to all 704 installations. Their first attempt — punching binary decks of about 2,000 cards each — was so error-prone that after a whole night they had produced only one or two. One of those decks reached the Westinghouse Bettis installation with no identification and no instructions. Herbert Bright's group there guessed what it was, got it to compile a test program, and on 20 April 1957 printed 28 pages of correct results.
The working system went out on magnetic tape instead, with a "Preliminary Operator's Manual" dated 8 April 1957. Field debugging and correction cards continued until late summer 1957.
Adoption
The speed of uptake is in Backus's own report from November 1958: a survey that April of 26 installations found that over half used FORTRAN for more than half of their problems. By the fall of 1958 there were some 60 installations with about 66 machines, and more than half the machine instructions for them were being produced by FORTRAN. SHARE, the 704 users' association, designated it the second official medium for exchanging programs.
FORTRAN II, with subroutines and separately compiled routines, was distributed in the spring of 1958. FORTRAN III, designed by Ziller and allowing 704 instructions to be mixed with FORTRAN statements, was made available to about 20 mostly IBM installations from the winter of 1958–59 and never distributed generally; Backus wrote that its machine dependence assured its demise along with the 704's.
What followed
FORTRAN IV followed in 1962. FORTRAN 66, approved in March 1966, was the first industry-standard version, and the language has been revised repeatedly since, most recently as Fortran 2023. It is still used in high-performance computing, including programs that benchmark the world's fastest supercomputers.
Its successors started from it. ALGOL 60 followed within three years, and Lisp began when John McCarthy found FORTRAN too hard to extend for list processing. Its creator later turned against the style it embodied, as described on the John Backus page.
For FORTRAN's place among its contemporaries, see the programming-languages timeline.
Questions this page answers
- What is Fortran, and who created it when?
- It is a language for writing scientific and engineering programs in something close to mathematical notation and having them translated into machine code. The name comes from the IBM Mathematical FORmula TRANslating System. John Backus proposed it to his manager Cuthbert Hurd in late 1953; an IBM team developed it from 1954, and the compiler for the IBM 704 was distributed in April 1957.
- Was Fortran the first high-level programming language?
- Not quite. Algebraic notation had been compiled before: Backus himself credited MIT's Laning and Zierler system as the world's first operating algebraic compiler, while Knuth and Pardo gave that honour to Glennie's AUTOCODE. What set the FORTRAN team apart, by Backus's account, was that it alone set out to produce really efficient object programs.
- How long did Fortran take to build?
- About three years. Work began in 1954; when the team briefed customers in late 1954 and early 1955 they promised completion in about six months, and it was actually finished more than two years later, in April 1957.
Sources
SecondaryFortran — IBM Heritage
IBM's own account; claims such as 'the first optimizing compiler' are IBM's
TertiaryFortran — Wikipedia
Last updated: