December 3, 1924, Philadelphia, Pennsylvania, United States
March 17, 2007, Ashland, Oregon, United States
BS mathematics (Columbia University, 1949); AM mathematics (Columbia University,1950); Honorary degree (Université Henre Poincaré, 1989).
US Army (antiaircraft battery crew; engineering and premed school, 1942-1946); IBM (programmer of Pure & Advanced Science Departments, 1950–1954; manager of Programming Research Department, 1954–1959; research staff, 1959–1963; IBM Fellow, 1963–1991); University of California, Santa Cruz (adjunct professor of information sciences, 1974); University of California, Berkeley (visiting professor, 1980; visiting professor, 1985).
IBM Fellow (1963); IEEE Computer Society W. W. McDowell Award (1967); National Medal of Science (1975); ACM Turing Award (1977); National Academy of Engineering Draper Prize (1993); Computer History Museum Fellow (1997); Asteroid 6830 Johnbackus named in his honor (June 1, 2007).
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.
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.
Backus settled in New York City, but was undecided about his future. 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.
|Backus describes IBM’s gigantic SSEC, the first computer he programmed.|
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 [1, 2], 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 (available here).
|Backus describes the creation of FORTRAN, the first high level programming language.|
The FORTRAN project took about two years from conception to first release, and the program consisted of over 25,000 lines of machine language. Eventually every IBM 704 sold included the FORTRAN program and its accompanying manual. For several more years, Backus and his team continued to refine the FORTRAN program—which we would today call a compiler—until it finally reached a reasonable degree of stability and correctness. 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 describes the genesis of BNF, a method for diagramming the syntax of programming languages.|
In 1963, Backus was made an IBM Fellow, the year the Fellow program was first established by Thomas Watson, Jr. In this position Backus was given considerable freedom to pursue whatever projects he desired, which included teaching assignments at the University of California in Santa Cruz and Berkeley.
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.
|Backus describes his shift of focus to functional programming, which differs fundamentally from the procedural approach taken by FORTRAN.|
John Backus was married twice, first to Marjorie Jamison, whom he divorced in 1966, then to Barbara Una Stanard in 1968. Backus had two children, Karen and Paula. Barbara died in 2004, whereupon Backus moved to Ashland, Oregon, to live near Paula. Backus died on March 17, 2007 in Ashland.
Author: Grady Booch