John Warner Backus (3 de diciembre de 1924 – 17 de marzo de 2007) fue un científico informático estadounidense . Lideró el equipo que inventó e implementó FORTRAN , el primer lenguaje de programación de alto nivel ampliamente utilizado , y fue el inventor de la forma Backus–Naur (BNF), una notación ampliamente utilizada para definir sintaxis de lenguajes formales . Más tarde investigó sobre el paradigma de programación a nivel de función , presentando sus hallazgos en su influyente conferencia del Premio Turing de 1977 "¿Se puede liberar la programación del estilo von Neumann?" [1]
En 1967, el IEEE le otorgó a Backus el premio WW McDowell por el desarrollo de FORTRAN. [2] Recibió la Medalla Nacional de Ciencias en 1975 [3] y el premio Turing en 1977 "por sus contribuciones profundas, influyentes y duraderas al diseño de sistemas prácticos de programación de alto nivel, en particular a través de su trabajo en FORTRAN, y por la publicación de procedimientos formales para la especificación de lenguajes de programación". [4]
John Backus se jubiló en 1991. Murió en su casa de Ashland, Oregón, el 17 de marzo de 2007. [5]
Backus nació en Filadelfia y creció en la cercana Wilmington, Delaware . [6] Estudió en The Hill School en Pottstown, Pensilvania , pero aparentemente no fue un estudiante diligente. [5] Ingresó a la Universidad de Virginia para estudiar química , pero tuvo dificultades con sus clases allí y fue expulsado después de menos de un año por mala asistencia. [7] Posteriormente fue reclutado en el Ejército de los EE. UU. durante la Segunda Guerra Mundial , [5] y finalmente llegó a tener el rango de cabo, siendo puesto al mando de una batería antiaérea estacionada en Fort Stewart , Georgia . [7]
Después de recibir altas calificaciones en una prueba de aptitud militar, el Ejército lo envió a estudiar ingeniería en la Universidad de Pittsburgh . [7] Más tarde se transfirió a un programa premédico en Haverford College . [8] Durante una pasantía en un hospital, se le diagnosticó un tumor en el hueso craneal , que fue extirpado con éxito, y se le instaló una placa en la cabeza. Luego se trasladó a la Escuela de Medicina Flower and Fifth Avenue para la escuela de medicina, pero la encontró poco interesante y abandonó después de nueve meses. [7] Pronto se sometió a una segunda operación para reemplazar la placa de metal en su cabeza con una de su propio diseño, [9] y recibió una baja médica honorable del Ejército de los EE. UU. en 1946. [7]
Tras mudarse a la ciudad de Nueva York , se formó inicialmente como técnico de radio y se interesó por las matemáticas. Se graduó en la Universidad de Columbia con una licenciatura en 1949 y una maestría en 1950, ambas en matemáticas, [7] [10] y se unió a IBM en 1950. Durante sus primeros tres años, trabajó en la Calculadora Electrónica de Secuencia Selectiva (SSEC) ; su primer proyecto importante fue escribir un programa para calcular las posiciones de la Luna . En 1953, Backus desarrolló el lenguaje Speedcoding , el primer lenguaje de alto nivel creado para una computadora IBM, para ayudar en el desarrollo de software para la computadora IBM 701. [11]
En aquella época, la programación era muy difícil y, en 1954, Backus reunió a un equipo para definir y desarrollar Fortran para el ordenador IBM 704. Fortran fue el primer lenguaje de programación de alto nivel que se utilizó ampliamente. Este lenguaje ampliamente utilizado hizo que los ordenadores fueran máquinas prácticas y accesibles para los científicos y otros sin necesidad de que tuvieran un conocimiento profundo de la maquinaria. [12]
Backus formó parte de los comités internacionales que desarrollaron ALGOL 58 y el muy influyente ALGOL 60 , que rápidamente se convirtió en el estándar mundial de facto para la publicación de algoritmos . Backus desarrolló la forma Backus–Naur (BNF), publicada en el informe de la UNESCO sobre ALGOL 58. Era una notación formal capaz de describir cualquier lenguaje de programación libre de contexto , y fue importante en el desarrollo de compiladores . Se probaron algunas desviaciones de este enfoque (notablemente en Lisp y APL ), pero en la década de 1970, las especificaciones libres de contexto de Backus–Naur para lenguajes de computadora se habían vuelto bastante estándar, luego del desarrollo de generadores de compiladores automatizados como yacc .
Esta contribución ayudó a Backus a ganar el Premio Turing en 1977.
Backus trabajó más tarde en un lenguaje de programación a nivel de función conocido como FP , que se describió en su conferencia del Premio Turing "¿Se puede liberar la programación del estilo von Neumann ?". [1] A veces visto como una disculpa de Backus por crear Fortran, este artículo hizo menos por generar interés en el lenguaje FP que por impulsar la investigación sobre la programación funcional en general. Cuando Backus publicitó el estilo de programación a nivel de función, su mensaje fue mayoritariamente malinterpretado [13] como si fuera el mismo que el de los lenguajes de programación funcional tradicionales.
FP se inspiró fuertemente en el APL de Kenneth E. Iverson , incluso utilizando un conjunto de caracteres no estándar . Se distribuyó un intérprete de FP con el sistema operativo Unix 4.2BSD , pero hubo relativamente pocas implementaciones del lenguaje, la mayoría de las cuales se utilizaron con fines educativos.
Backus pasó la última parte de su carrera desarrollando FL (de "Function Level"), un sucesor de FP. FL era un proyecto de investigación interno de IBM y el desarrollo del lenguaje se detuvo cuando el proyecto terminó. Solo quedan unos pocos artículos que lo documentan, y el código fuente del compilador descrito en ellos no se hizo público. FL estaba en desacuerdo con los lenguajes de programación funcional que se desarrollaron en la década de 1980, la mayoría de los cuales se basaban en el cálculo lambda y los sistemas de tipado estático en lugar de, como en APL, la concatenación de operaciones primitivas. Muchas de las ideas del lenguaje ahora se han implementado en versiones del lenguaje de programación J , el sucesor de APL de Iverson.