John Warner Backus (December 3, 1924 – March 17, 2007) was an Americancomputer scientist. He led the team that invented and implementedFORTRAN, the first widely usedhigh-level programming language, and was the inventor of theBackus–Naur form (BNF), a widely used notation to definesyntaxes offormal languages. He also contributed to the design ofALGOL, and later researched thefunction-level programming paradigm, presenting his findings in his influential 1977 Turing Award lecture "Can Programming Be Liberated from the von Neumann Style?"[1]
TheIEEE awarded Backus theW. W. McDowell Award in 1967 for the development of FORTRAN.[2] He received theNational Medal of Science in 1975[3] and the 1977Turing Award "for profound, influential, and lasting contributions to the design of practical high-level programming systems, notably through his work on FORTRAN, and for publication of formal procedures for the specification of programming languages".[4]
John Backus retired in 1991. He died at his home inAshland, Oregon on March 17, 2007.[5]
After receiving high scores on a military aptitude test, the Army sent him to study engineering at theUniversity of Pittsburgh.[7] He later transferred to a pre-medical program atHaverford College.[8] During an internship at a hospital, he was diagnosed with a cranialbone tumor, which was successfully removed, and a plate was installed in his head. He then moved to theFlower and Fifth Avenue Medical School for medical school, but found it uninteresting and dropped out after nine months.[7] He soon underwent a second operation to replace the metal plate in his head with one of his own design,[9] and received an honorable medical discharge from the U.S. Army in 1946.[7]
After moving toNew York City he trained initially as aradio technician and became interested in mathematics. He graduated fromColumbia University with a bachelor's degree in 1949 and a master's degree in 1950, both in mathematics,[7][10] and joinedIBM in 1950. During his first three years, he worked on theSelective Sequence Electronic Calculator (SSEC); his first major project was to write a program to calculate positions of theMoon. In 1953, Backus developed the languageSpeedcoding, the first high-level language created for an IBM computer, to aid in software development for theIBM 701 computer.[11]
Programming was very difficult at this time, and in 1954 Backus assembled a team to define and developFortran for theIBM 704 computer.Fortran was the first high-level programming language to be put to broad use. This widely used language made computers practical and accessible machines for scientists and others without requiring them to have deep knowledge of the machinery.[12]
Backus served on the international committees that developedALGOL 58 and the very influentialALGOL 60, which quickly became thede facto worldwide standard for publishingalgorithms. Backus developed theBackus–Naur form (BNF), published in theUNESCO report on ALGOL 58. It was a formal notation able to describe anycontext-free programming language, and was important in thedevelopment of compilers. A few deviations from this approach were tried (notably inLisp andAPL), but by the 1970s, Backus–Naur context-free specifications for computer languages had become quite standard, following the development of automated compiler generators such asyacc.
This contribution helped Backus win theTuring Award in 1977.
Backus later worked on afunction-level programming language known asFP, which was described in hisTuring Award lecture "Can Programming be Liberated from thevon Neumann Style?".[1] Sometimes viewed as Backus's apology for creating Fortran, this paper did less to garner interest in the FP language than to spark research intofunctional programming in general. When Backus publicized the function-level style of programming, his message was mostly misunderstood[13] as being the same as traditional functional programming style languages.
FP was strongly inspired byKenneth E. Iverson'sAPL, even using a non-standardcharacter set. An FPinterpreter was distributed with the4.2BSDUnix operating system, but there were relatively few implementations of the language, most of which were used for educational purposes.
Backus spent the latter part of his career developingFL (from "Function Level"), a successor to FP. FL was an internal IBM research project, and development of the language stopped when the project was finished. Only a few papers documenting it remain, and the source code of the compiler described in them was not made public. FL was at odds with functional programming languages being developed in the 1980s, most of which were based on thelambda calculus andstatic typing systems instead of, as in APL, the concatenation of primitive operations. Many of the language's ideas have now been implemented in versions of theJ programming language, Iverson's successor to APL.
^Allen, F.E. (September 1981). "The History of Language Processor Technology in IBM".IBM Journal of Research and Development.25 (5):535–548.doi:10.1147/rd.255.0535.