Naissance | 3 décembre 1924 |
Décès | 17 mars 2007 |
Nationalité | américaine |
Activités | Mathématicien, informaticien |
John Warner Backus (né à Philadelphie le 3 décembre 1924 – mort à Ashland (Oregon) le 17 mars 2007) est un informaticien américain. Il est directeur de l’équipe qui pour la première fois crée un langage de programmation de haut niveau, le Fortran, et est le créateur de la forme de Backus-Naur (BNF). Il a aussi mené de nombreuses recherches sur la programmation fonctionnelle, qu'il a contribué à populariser. Il reçoit le prix Turing en 1977 pour « son influence et sa contribution au développement des langages de programmation de haut niveau, notamment à travers son travail sur FORTRAN, et pour la publication des procédures formelles servant à la spécification des langages de programmation »3. Il prend sa retraite en 1991 et meurt chez lui à Ashland en Oregon le 17 mars 20074.
Backus est né à Philadelphie, en Pennsylvanie. Il étudie à The Hill School à Pottstown en Pennsylvanie, mais n’est pas réellement un bon élève4. Après son entrée à l’université de Virginie pour étudier la chimie, il est recruté par l’armée américaine4. Ses résultats aux tests d'aptitude le dirigent vers une carrière médicale. Il étudie alors la médecine à Harverford, puis travaille à l'hôpital de Atlantic City. Là, on lui diagnostique une tumeur cérébrale, retirée par la suite avec succès. Peu après, il décide de mettre un terme à ses études médicales. Après son arrivée à New York, il entame une formation de technicien radio. C'est en aidant son professeur à réaliser certains calculs que Backus se découvre un intérêt pour les mathématiques. En 1949, il obtient une maîtrise à l’université Columbia, puis rejoint IBM en 1950. Les trois premières années, il travaille sur le SSEC (Selective Sequence Electronic Calculator). Son premier projet majeur est d’écrire un programme chargé de calculer la trajectoire de la Lune. En 1953, Backus découvre le IBM 701, le successeur du SSEC. Il est alors confronté au même problème qu'avec le SSEC : réaliser des calculs scientifiques qui nécessitent l'utilisation de nombres en virgule flottante, alors que le IBM 701 ne prend en charge que les entiers arithmétiques. Pour pallier le problème, Backus développe le système Speedcoding, qui permet au programme d'utiliser un système simple de nombres en virgule flottante.
En 1953, il n'existe pas encore de vrai langage de programmation tel qu'on le conçoit au début du XXIe siècle. La plupart des programmes est écrite manuellement en langage machine ou à l'aide d'un assembleur primitif5. Bien sûr, il y a le système de Backus, Speedcoding6, mais l'approche n'est pas la bonne et le résultat est très lent. L'arrivée de l'IBM 704 cette même année va changer la donne. Outre le fait qu'il est plus performant que son prédécesseur, il possède un processeur qui supporte directement les nombres en virgule flottante. Un système tel que Speedcoding devient donc inutile. Après avoir consacré un an à décrire la syntaxe et le fonctionnement de Fortran, Backus présente le projet à ses supérieurs en novembre 1954, dans le rapport intitulé Specifications for The IBM Mathematical Formula Translating System FORTRAN7. Il faut ensuite plus de deux ans à l'équipe de Backus pour développer le compilateur FORTRAN8, déployé courant avril 1957 sur tous les IBM 704.
À la fin des années 1950, il travaille avec le comité international chargé de développer ALGOL 58 et le très influent ALGOL 60, qui devient très rapidement le standard pour la description des algorithmes par les chercheurs en informatique, statut qu'il conservera pendant longtemps. Au moment de la mise au point d'Algol, Backus travaille sur un nouvel outil permettant d'exprimer une grammaire formelle pour un langage de programmation. Il présente son travail au comité, The syntax and semantics of the proposed international algebraic language of the Zurich ACM-GAMM conference, en juin 1959. Peter Naur, autre membre du comité, s'intéresse alors au travail de Backus et y apporte quelques modifications. La BNF (pour Backus Naur Form, au lieu de Backus Normal Form) est alors utilisée pour la description de l'ALGOL 60 en 1960.