Things Have History
Fortran, or the compiler nobody believed in

programming-languages

Fortran, or the compiler nobody believed in

Listen · 4:39

The IBM 701 in Midtown Manhattan, 1953: a refrigerator-sized cabinet capable of executing thousands of arithmetic operations per minute. The programmer assigned to compute missile trajectories on it — a 28-year-old named John Backus — was not having a good time. Writing a moderately complex program meant composing hundreds of machine-code instructions by hand, testing them against expected outputs, finding the one that was wrong, and starting over. The machine ran in seconds. The programmer ran in days. Backus later described his motivation with characteristic frankness: “Much of my work has come from being lazy. I didn’t like writing programs,” he would say (Wikipedia).

In November 1953, Backus submitted a short memo to IBM management proposing a solution: a system that could translate mathematical notation — the kind scientists and engineers already used — directly into machine code. IBM gave him a team and a rough estimate of six months. The project took three and a half years.

The thirteen people Backus assembled were not a conventional programming team, largely because in 1954 the profession barely existed. His recruits included David Sayre, a crystallographer who had studied X-ray diffraction; Lois Haibt, who came from an actuarial mathematics background; and a chess expert whose skill in combinatorial analysis turned out to be more useful than any traditional computing background. Most were in their twenties. Backus later described the group as chosen partly because they were “untainted” by existing assumptions about what a compiler could or couldn’t do (IEEE Computer History).

The first FORTRAN compiler shipped in April 1957 for the IBM 704 mainframe. The name stood for Formula Translating System. A scientist wanting to compute a stress analysis or a ballistic path could now write equations in a notation that looked roughly like their own mathematical shorthand, and the compiler would produce the machine code. What had required hundreds of hand-coded instructions was expressible in dozens of FORTRAN statements.

The hard part was not the translation — it was convincing programmers to trust what the translator produced. Assembly programmers had spent years hand-tuning their code for every wasted cycle, and the prevailing assumption was that any compiler would introduce inefficiencies a human expert would catch. Backus’s team understood this, and spent most of their three years not designing the language but designing the optimizer: the part of the compiler that analyzed code structure and eliminated waste before the machine ever ran it. The generated code ran fast enough that the skeptics ran out of objections. Backus would later note that the FORTRAN compiler remained the best general optimizer for twenty years after it shipped (IEEE Computer History).

At the 1977 ACM Turing Award ceremony, Backus accepted the field’s highest honor for the creation of FORTRAN and then spent most of his lecture arguing that programming should be “liberated from the von Neumann style” — the imperative, step-by-step approach that FORTRAN had spent two decades popularizing. He went on to spend the next decade in functional programming research. It is a particular kind of intellectual honesty to receive an award for building something and then stand at the podium to explain what it got wrong.

FORTRAN made the computer usable by the people who most needed it — physicists, engineers, statisticians — without asking them to think in opcodes. Within a few years, universities were teaching scientific computing in FORTRAN rather than assembly. COBOL followed in 1959. ALGOL in 1960. Each subsequent language arrived only because Backus’s team had established the proof of concept: that a compiler could work, and that programmers would accept what it produced.

The machine met the programmer partway in April 1957. The question every language designer since has been answering is: how much further?

Sources

  • Fortran — Wikipedia — timeline, team composition, Backus quote on laziness, April 1957 compiler release, subsequent languages influenced
  • John Backus — IEEE Computer History — team details, Backus’s assessment that the FORTRAN compiler remained the best optimizer for 20 years, career timeline
Spot a mistake?

Wrong date, broken citation, a fact that doesn't hold? Tell us. It lands in an inbox a human reads and the post can be pulled or corrected.