THE 1950S

IBM 704

In 1954, IBM launched a computer that would be a game-changer: the IBM 704. The first mass-produced computer equipped with a floating-point arithmetic unit, this machine marked a radical departure from the IBM 701 and 702 that preceded it.

What did this machine bring to the table? First, ferrite core memory replacing the Williams tubes used until then. The addition of three index registers also transformed the way of programming. To take advantage of these technical assets, the designers revised the instruction format, now using the complete 36-bit word. This instruction set would become the DNA of the entire IBM 700/7000 scientific line in the following years.

Under the hood of the IBM 704 was a 38-bit accumulator, a 36-bit multiplier-quotient register, and three 15-bit decrement registers. These latter had the peculiarity of subtracting their content from the base address instead of adding to it. The machine allowed simultaneous use of all three registers in one instruction, via a 3-bit tag field serving as a binary map to indicate the participating registers. A technical trick worth highlighting.

The architecture of the IBM 704 was based on two instruction formats: “Type A” and “Type B”. The first combined a three-bit prefix (instruction code), a decrement field (15 bits), a tag field (3 bits), and an address field (15 bits). The second combined a 12-bit instruction code, a 2-bit flag field, four unused bits, a 3-bit tag field, and a 15-bit address field.

Between 1955 and 1960, IBM sold 123 units of this machine. Its performance was approximately 40,000 instructions per second, a number that impressed at the time. Its substantial price reserved it for major scientific laboratories and industrial groups.

But the IBM 704 didn’t just shine through its hardware; it also carried two important software creations. FORTRAN, first, created specifically for this machine. This language made scientific programming more natural, with code writing close to mathematical equations. An automatic translator converted this code into machine language, thus reducing errors and programming time.

LISP, another prodigy born on the IBM 704, still retains today in its car and cdr primitives the trace of this lineage. These names, abbreviations of “Contents of Address part of Register number” and “Contents of Decrement part of Register number”, directly reflect the machine’s architecture, where these fields served to store respectively the head and tail of linked lists.

Computer-assisted music took its first steps on this machine. Max Mathews developed MUSIC there, opening virgin territory to artistic exploration. In 1962, at Bell Labs, physicist John Larry Kelly Jr made the IBM 704 sing. His vocoder synthesizer reproduced “Daisy Bell” with musical accompaniment by Max Mathews. Arthur C. Clarke, an awestruck witness to this demonstration, immortalized it in the final scene of his novel “2001: A Space Odyssey”, where the HAL 9000 computer intones this melody.

The IBM 704 distinguished itself in various scientific fields. Ed Thorp used it to model his equations on blackjack probabilities using FORTRAN. The machine participated in the space race: in the fall of 1957, it became the official computer of the Smithsonian Astrophysical Observatory’s Operation Moonwatch. IBM assigned four scientists—Giampiero Rossoni, John Greenstadt, Thomas Apple, and Richard Hatch—to help Smithsonian researchers calculate the trajectories of the first artificial satellites.

The FORTRAN system developed for the IBM 704 testified to growing software maturity. Its reference manual, published in October 1956, described a complete environment with input-output management, automatic conversions between decimal and binary formats, multidimensional array manipulation, and generated code optimization. The system also handled integration of external routines and allocation of available memory.

The technical documentation emphasized the efficiency of code produced by FORTRAN, comparable to that written by the best programmers in machine language. This performance, coupled with programming simplicity, explains the rapid adoption of the system in scientific circles.

The IBM 704 symbolizes that period when the computer, initially a calculating machine, transformed into a versatile creative tool. Its influence on computer languages, sound synthesis, and scientific computing marked the beginnings of modern 20th-century computing.