John Warner Backus
John Warner Backus was born on December 3, 1924, in Philadelphia, Pennsylvania, and grew up in Wilmington, Delaware, the son of a wealthy stockbroker. He attended the Hill School in Pottstown, Pennsylvania. He was not a good student, although he eventually graduated in 1942, whereupon he entered the University of Virginia and majored in chemistry. There he also had a difficult time at school, and was eventually expelled due to poor attendance after less than a year. He was then drafted into the US Army where, with the rank of corporal, he commanded an antiaircraft battery at Fort Stewart, Georgia and stayed in the United States for the remainder of World War II.
Due to excellent results on his military aptitude tests, Backus was first directed to the engineering program at the University of Pittsburgh and later to a premedical program at Haverford College outside of Philadelphia. During his medical studies, he was diagnosed with a cranial bone tumor, which was surgically removed and replaced with a metal plate. In March 1945, he attended the Flower and Fifth Avenue Medical School in New York City, but dropped out after nine months “because all you had to do was memorize stuff”. After one more operation to replace the plate in his head, this time with one he made himself, Backus left the army in 1946 with an honorable medical discharge.
Although he had no skills in electronics, he entered a radio technician school to learn how to build a radio receiver. That work led him to study mathematics, and so he enrolled in a mathematical program at Columbia University. In the spring of 1949, just before his graduation, he happened to be walking by the IBM Computing Center on Madison Avenue where IBM had their Selective Sequence Electronic Calculator (SSEC), a one-of-a-kind relay and vacuum tube computer designed at the Watson Scientific Computing Laboratory at Columbia. He made a passing comment to his tour guide about his interest in working on the computer, was immediately taken upstairs to meet the SSEC project director, and hired on the spot as a programmer.
One of the main uses of the SSEC at that time was the calculation of ephemeris tables, a task on which Backus worked for three years. The techniques developed by Backus and his team were later used by NASA for the Apollo lunar missions of the 1960s.
Programming at that time meant writing instructions at the machine level. To facilitate the process, Backus invented a program called Speedcoding, which allowed operations on floating point numbers to be described in a more symbolic form. At that time IBM was developing the IBM 704, a scientific computer built with vacuum tubes and core memory that was designed primarily for floating point operations. In 1953, based on his work with Speedcoding, Backus proposed the creation of a new language that would make it easier to program the 704.
IBM management accepted Backus’ proposal, and he eventually assembled a ten-person team that worked out of the IBM World Headquarters in Manhattan. About a year later, his team had enough confidence in their work to release the Preliminary Report, Specifications for the IBM Mathematical FORmula TRANslating System, FORTRAN.
The FORTRAN project took about two years from conception to first release, and the program consisted of over 25,000 lines of machine language. FORTRAN gained considerable traction in the scientific community, and became the dominant programming language for scientific applications for many decades.
Efforts were soon underway to develop other high-level programming languages that attended to the needs of writing algorithms more clearly. Backus joined an international committee to design the ALGOrithmic programming Language, ALGOL 58, and its successor, ALGOL 60. The ALGOL language descriptions used a context-free grammar to formally describe its syntax, and Backus collaborated with Peter Naur, in developing the Backus-Naur Form (BNF) notation that was used. BNF represented a significant milestone in the formalization of programming languages.
Backus continued his work in programming languages in relative isolation. He eventually made contributions to functional programming with the creation of a new language, FP (Functional Programming). While the theoretical foundations of functional programming had been established earlier with the lambda calculus as manifested in John McCarthy’s Lisp, Backus’ work made functional programming more accessible and so launched a renaissance in research on the topic. Backus retired from IBM in 1991.
He received the A M Turing Award from the Association for Computing Machinery in 1977.
For profound, influential, and lasting contributions to the design of practical high-level programming systems, notably through his work on FORTRAN, and for seminal publication of formal procedures for the specification of programming languages.
This was the award which led to his lecture Can Programming be liberated from the von Neumann Style? A Functional Style and its Algebra of Programs from which we quoted above. In 1993 he was awarded the Charles Stark Draper Prize from the National Academy of Engineering:-
For his development of FORTRAN, the first widely used, general purpose, high-level computer language.