Il était professeur à l'Université de Louisville lorsque la Seconde Guerre mondiale débuta et il quitta son poste pour rejoindre le projet Manhattan en 1945, programmant l'un des premiers calculateurs digitaux pour calculer les solutions des équations fournies par les physiciens du projet. L'objectif du programme était de découvrir si la détonation d'une arme nucléaire pouvait mettre en feu l'atmosphère. Les calculs montrèrent que ça ne serait pas le cas, ce qui permit aux États-Unis de procéder à un essai atmosphérique au Nouveau-Mexique puis de lancer deux bombes sur le Japon.
Laboratoires Bell
De 1946 à 1976, il travailla pour les Laboratoires Bell où, avec Claude Shannon, John Tukey et d'autres anciens de Los Alamos, il faisait partie d'un groupe de chercheurs indépendants, dégagés des contraintes de recherche de financement et de dépôt de brevet surnommés les « jeunes Turcs[1] ». « Nous étions des empêcheurs de tourner en rond, déclara plus tard Hamming. Nous faisions des trucs non-conventionnels mais qui donnaient des bons résultats ; alors la direction nous tolérait et nous laissait tranquilles pendant de longues périodes[2]. »
Hamming avait été recruté pour travailler sur la résolution des problèmes d'élasticité, mais il se prit de passion pour le calcul automatique[3]. Un vendredi de l'année 1947, il avait programmé pour le week-end une longue série de problèmes sur des calculateurs du laboratoire, mais il découvrit le lundi que les calculs avaient avorté par suite d'erreurs de transmission de données[4]. Les calculateurs digitaux traitent l'information comme des listes de 0 et de 1 (auxquels Tukey avait donné le nom de bits, contraction de « binary digits[5] »), et il suffit qu'un seul 0 ou 1 soit faux pour altérer toute la suite d'un message. Pour détecter ces erreurs, on utilisait un bit de parité. « Si l'ordinateur peut dire quand l'erreur est survenue, pensa Hamming, il y a sûrement moyen de dire où exactement, de telle sorte que l'ordinateur puisse corriger lui-même l'erreur [4]. »
Hamming se consacra donc à ce problème[6], dont il concevait l'importance pour une multitude d'applications. Dans un article pionnier publié en 1950, il s'intéressa aux différences entre deux mots binaires de même longueur, et au nombre d'opérations nécessaires pour transformer l'un en l'autre : c'est là l'origine de ce que l'on a appelé depuis la distance de Hamming[7]. Par là, il a créé une famille de codes correcteurs d'erreur mathématiques, qui ont pris le nom de codes de Hamming. Non seulement ils résolvaient un important problème des télécommunications et de l'informatique, mais ils ont ouvert un nouveau domaine de recherche[7],[8].
La borne de Hamming, ou limite de compacité, fixe une limite théorique aux performances des codes correcteurs. C'est une interprétation de l'empilement compact dans l'espace de tous les mots binaires possibles, en termes de distance de Hamming. La borne de Hamming caractérise la limitation de l'efficacité avec laquelle un code correcteur exploite le nombre de positions dans la longueur d'un mot. Un code correcteur qui peut atteindre la borne de Hamming est dit « parfait » : les codes de Hamming satisfont cette condition[9],[10].
Hamming consacrait néanmoins le reste de son temps à la résolution numériques des équations différentielles. L'approche la plus commune, en ce milieu des années 1950, était la méthode des différences finies dans la forme que lui avait donnée William Milne[11] au milieu des années 1920 ; mais le caractère instable de cette technique, lié au fait que sous certaines conditions, les résultats étaient faussés par propagation d'erreurs d'arrondi, était bien connu. Hamming en développa une version améliorée (le schéma prédicteur-correcteur de Hamming) qui fut employée plusieurs années avant d'être supplantée par les méthodes d'Adams-Bashforth[12]. Il effectua des recherches poussées sur les filtres numériques, concevant une technique particulière de fenêtrage, la fenêtre de Hamming, et consacra finalement tout un ouvrage à la question : Digital Filters[13] (1977).
Au cours des années 1950, il programma l'un des premiers ordinateurs, l'IBM 650, et développa dès 1956 avec Ruth A. Weiss l'un des premiers langages de programmation, le langage L2, diffusé sous le nom de Bell 2. Quoique très utilisé par les Laboratoires Bell et quelques programmeurs, il fut toutefois supplanté l'année suivante par Fortran, les Laboratoires Bell ayant tout juste remplacé leurs IBM 650 par des IBM 704[14].
Travaux
Recherches
Cette section est vide, insuffisamment détaillée ou incomplète. Votre aide est la bienvenue ! Comment faire ?
Samuel P. Morgan, « Richard Wesley Hamming (1915–1998) », Notices of the AMS, vol. 45, no 8, , p. 972–977 (ISSN0002-9920, lire en ligne, consulté le )
↑Bernard D. Holbrook et W. Stanley Brown, Computing Science Technical Report No. 99 – A History of Computing Research at Bell Laboratories (1937–1975), Laboratoires Bell (lire en ligne [archive du ])