John Backus

Fortran of John Backus

We have mentioned already Konrad Zuse's Plankalkül as the first high-level language in the world. Plankalkül however, as well as other ideas and projects, remained only on paper. The first high level programming language to be put to broad use was Fortran of John Backus.

John Warner Backus (1924-2007), a bachelor of mathematics from Columbia University, saw his first computer in 1950, when he was hired as a programmer in the IBM Computer Center on Madison Avenue, to take care for the Selective Sequence Electronic Calculator (SSEC), an electromechanical computer (a hybrid of some 13000 vacuum tubes and 23000 electromechanical relays), built by IBM in January 1948. Wallace J. Eckert, the director of IBM’s Watson Scientific Computing Laboratory, did SSEC calculations of the moon’s orbit that would show up 20 years later in the Apollo space program.

IBM SSEC computer

IBM SSEC computer from 1948

Programming the SSEC was a real challenge, as there was no set way of doing it. Backus spent three years working on the SSEC, during which time he created a program called Speedcoding. The program was the first to include a scaling factor, which allowed both large and small numbers to be easily stored and manipulated.

IBM 704 Data Processing SystemIn late 1953, Backus wrote a memo to his boss that outlined the design of a programming language for IBM’s new computer, the IBM 701, which, only the year before, had launched the company into a brand new world of electronic data processing. IBM approved Backus’s proposal, and in 1954 he was appointed as a boss of a small team of 4 people at the IBM Watson Scientific Laboratory. As in May 1954 IBM launched a new computer, IBM 704 Data Processing System (an advanced computer with high-speed magnetic core memory, a magnetic drum storage unit and tape device, holding up to 5 million characters, see the nearby image), the group switched to it.

IBM 704 had also a built-in scaling factor (automatic floating point operation), and index registers, which significantly reduced operating time. The inefficient computer programs of the time however would hamper the 704’s high performance, that's why Backus wanted to design not only a better language, but one that would be easier and faster for programmers to use when working with the machine. Backus wanted it to accept a concise formulation of a problem in terms of mathematical notation and to produce automatically a high-speed 704 program for its solution. Thus he decided to create a device that would translate the new language into something the machine could understand. This device, known as a translator, would eliminate the laborious hand-coding that characterized computer programming at the time. It contained an element known as a parser, which identified the various components of the program and translated them from a high-level language (one that people understand) into the binary language of the computer.

In November 1954, Backus and his team published the first formal proposal for the language—Preliminary Report, Specifications for the IBM Mathematical FORmula TRANslating System, FORTRAN. At the time, Backus anticipated completion of the compiler in six months. Instead, it would take almost 3 years, to be released commercially in 1957.

When completed, the Fortran compiler consisted of some 25000 lines of machine code, stored on a magnetic tape. A copy of the program was provided with every IBM 704 installation, along with a 51-page manual. The first versions of the program were understandably buggy, but later versions would refine and eliminate them.

The new language was designed preliminary for mathematicians and scientists, and remains the preeminent programming language in these areas for more then 3 decades. It was the first widely used language,which allows people to work with their computers without having to understand how the machines actually work, and without having to learn the machine’s assembly language.

After Fortran, Backus turned his focus to other elements of computer programming. In 1959, in order to express the grammar of the new ALGOL language, he developed a notation (a formal way to describe formal languages) which will be called later the Backus-Naur Form. It describes grammatical rules for high-level languages, and has been adapted for use in a number of languages. Backus-Naur Form quickly became the de facto worldwide standard for publishing algorithms. This contribution helped Backus win the Turing Award.

In the 1970s, Backus worked on finding better programming methods, and developed what he called a function-level language, or FP (for functional programming).