Les Newsletters Interstices
Début de l'article de Menabrea
    Niveau facile
    Niveau 1 : Facile

    Le premier article scientifique de l’histoire de l’informatique ?

    Histoire du numérique
    Algorithmes
    Menabrea. Si ce nom ne vous évoque, au mieux, que le souvenir d’une bière piémontaise (excellente au demeurant) et que vous vous intéressez aux origines de l’ordinateur, vous aurez à cœur de découvrir un personnage que l’Histoire de l’informatique a laissé dans l’ombre malgré une contribution significative.

    Luigi Federico Menabrea.
    Source : Wikimedia Commons.

    Ingénieur, militaire, scientifique, diplomate et politique, Luigi Federico Menabrea naît en 1809 à Chambéry, quelques années avant le retour de la Savoie au Royaume de Piémont-Sardaigne.

    Enseignant de mécanique à l’École militaire et à l’université de Turin, Menabrea est reconnu pour ses contributions au calcul des pressions et des tensions dans les systèmes élastiques tels que des réseaux de poutres. On lui doit un théorème, certes mineur et contesté, qui porte son nom. Il fut membre de l’Académie des Sciences de Turin et de l’Académie des Lynx (Accademia dei Lincei) fondée en 1603, et à ce titre la plus ancienne académie scientifique d’Europe.

    Son implication dans l’histoire du calcul automatique est fortuite. En 1840, se tient à Turin le Congrès des Scientifiques Italiens. Charles Babbage, qui n’a jusque-là pas réussi à recueillir la reconnaissance de ses travaux en Angleterre, est invité par l’astronome Giovanni Plana à venir présenter son projet de « machine analytique ». Cette toute première présentation des travaux de Babbage à un public scientifique retient l’attention de ses confrères italiens et les discussions se prolongent au sein de plusieurs séminaires d’audience plus restreinte. Babbage espère que Plana rédigera un compte-rendu de ces échanges, mais c’est finalement à Luigi Federico Menabrea que la tâche est confiée. Babbage est quelque peu déçu, car Menabrea est loin de jouir alors de la même réputation scientifique que Plana ; il interagit néanmoins avec lui lors la rédaction de ces notes.

    Ce qui est peut-être le premier article scientifique dans le domaine du calcul automatique est publié, en français, dans le 41e tome de la Bibliothèque Internationale de Genève en octobre 1842 sous le titre « Notions sur la machine analytique de M. Charles Babbage » (p. 352).

    Coincées entre une « Comparaison entre les mers de Brest et de Lorient, de Cancale et de Lorient, et de Cancale et de Noirmoutier ; et inclinaison de la Manche, du Pas-de-Calais à Brest » et une « Exposition d’un nouveau procédé pour obtenir, par la pression sur du cuivre métallique, des copies de médailles et d’autres objets semblables », les 25 pages de l’article rédigé par Menabrea décrivent les principes sur lesquels repose le projet de Babbage d’une machine propre non seulement à effectuer les calculs arithmétiques élémentaires, mais aussi à les enchaîner sans intervention humaine afin de calculer, vite et sans erreur, la valeur d’expressions algébriques complexes.


    Menabrea donne l’exemple de la fonction polynomiale f : x → x2.
    La colonne de gauche (A) affiche les valeurs de f(x) pour x=1, 2, 3, … ; la colonne à sa droite (B) les valeurs successives des différences finies d’ordre 1 correspondantes ; et la dernière colonne (C) celles des différences finies d’ordre 2. Celles-ci sont toutes égales à 2. À partir du triplet de valeurs [9, 5, 2] (sur la diagonale ab), il est élémentaire de calculer la différence première suivante 7 = 5 + 2 et, de là, la valeur de f(4), 9 + 7. Le nouveau triplet de valeurs ainsi obtenu [16, 7, 2] (sur la diagonale cd) sert de base à l’itération suivante pour calculer f(5) = (7 + 2) + f(4) et ce faisant le nouveau triplet [25, 9, 2], et ainsi de suite.

     
    Menabrea commence par rappeler le premier projet de Charles Babbage de « machine aux différences ». Ce dispositif mécanique est destiné à calculer les tables de fonctions polynomiales, et par là de fonctions complexes, logarithmiques ou encore trigonométriques, dont des approximations peuvent être obtenues par des polynômes. Le principe de la machine est de calculer les valeurs successives d’un polynôme de degré N à l’aide de ses différences finies d’ordre 1, 2, …, N, sachant que les différences finies d’ordre N sont égales entre elles. La machine met en œuvre un double schéma itératif simple qui permet de calculer les valeurs du polynôme de proche en proche.

    Pour une fonction f et des valeurs de sa variable x équidistantes x0, x1, …, xn, xn+1, … , les différences finies d’ordre 1 sont d(1)n = f(x n) – f(x n-1). Les différences d’ordre 2 sont les différences finies des différences d’ordre 1, soit d(2)n = d(1)nd(1)n-1, etc. Ainsi, f(xn+1) peut se calculer comme étant égale à f(xn) + d(1)n+1d(1)n+1 peut à son tour être calculée comme la somme d(1)n + d(2)n, et ainsi de suite.

    Or, les différences finies d’ordre N d’un polynôme de degré N, notées d(N),ont toutes la même valeur. De ce fait, à partir de N+1 valeurs initiales [f(xn), d(1)n, d(2)n,… , d(N-1)n, d(N)n], un double schéma itératif simple, n’impliquant que des additions ou des soustractions, permet de calculer de proche en proche les valeurs successives de la fonction. En effet, d(N)n et d(N-1)n permettent de calculer d(N-1)n+1 qui, combinée avec d(N-2)n, permet de calculer d(N-2)n+1, et ainsi de suite jusqu’à calculer f(xn+1).

    Sur le nouvel ensemble de valeurs obtenu [f(xn+1), d(1)n+1, d(2)n+1,… , d(N-1)n+1, d(N)n+1], où d(N)n+1 est tout simplement égale à d(N)n, le même schéma de calcul s’applique pour obtenir f(xn+2). De proche en proche, il est ainsi possible de calculer les valeurs successives de la fonction polynomiale.

    Dans l’exemple des valeurs du polynôme x2 donné par Menabrea, les différences d’ordre 2 sont toutes égales à 2. Les valeurs successives du polynôme se calculent de proche en proche à partir d’un triplet composé de valeurs connues de la fonction et de ses différences finies, par exemple [9, 5, 2]. C’est pour exécuter ce schéma itératif que la machine aux différences de Babbage était conçue.

    Babbage ne parvint pas à réaliser son projet, dont il fit néanmoins plusieurs versions. Mais il inspira le suédois Georg Scheutz qui, aux alentours de 1850, fit construire plusieurs machines similaires et les commercialisa. Le plus jeune fils de Babbage, Henry Prevost, réalisa six maquettes très partielles de la machine, dont une, envoyée à Harvard, attirera en 1930 l’attention d’un des pionniers de l’informatique moderne, Howard Aiken. Il faudra cependant attendre l’année 2000 pour que soit construite une machine conforme aux plans de Babbage, y compris le mécanisme d’impression des résultats.

    Le Science Museum de Londres abrite une réalisation moderne de la machine aux différences. Partiellement aboutie en 1991, bicentenaire de la naissance de Babbage, elle est conforme au dernier projet de Babbage. On y distingue les colonnes dont les rotations exécutent les calculs d’addition ou de soustraction requis. Ce « codage » mécanique des nombres, unique solution pour l’époque, se retrouve dans le projet de machine analytique. En 2000, cette réalisation a été complétée par le dispositif destiné à imprimer les tables obtenues. Depuis 2008, une réplique fonctionne aussi au Computer History Museum en Californie.
    Photo : Carsten Ullrich / Wikipedia.

    La machine aux différences est un dispositif de calcul spécialisé qui permet de réaliser plus rapidement un enchaînement fixé d’opérations (seul l’ordre N peut varier). Le projet de machine analytique va bien au-delà puisqu’il s’agit de calculer automatiquement la valeur d’expressions algébriques arbitraires.

    La technologie de l’époque étant purement mécanique, la machine analytique met en œuvre des séries de disques coaxiaux formant des colonnes ; chaque colonne permet de mémoriser une valeur, qu’elle soit initiale ou résultant d’un calcul, à raison d’un chiffre décimal par disque. L’ensemble de ces disques est comparé à un magasin de nombres ; on parlerait aujourd’hui de mémoire.

    Le « moulin » est l’autre composant de cette machine analytique.
    Il possède lui aussi des colonnes qui lui sont propres, des registres en quelque sorte. C’est le moulin – qu’on appellerait « processeur » aujourd’hui – qui effectue les calculs élémentaires, les quatre opérations arithmétiques et de test de signe, sur les valeurs qui sont recopiées au début du calcul du magasin vers les colonnes du moulin. Les résultats d’un calcul sont symétriquement recopiés du moulin sur des colonnes du magasin. Lors d’une série de calculs, les valeurs impliquées transitent ainsi du magasin vers le moulin et du moulin vers le magasin.

    Cette capacité d’échanges entre mémoire et processeur est nécessaire pour que les calculs puissent s’enchaîner sans intervention humaine ; encore faut-il que cet enchaînement soit spécifié. Sur le modèle des métiers à tisser de Jacquard, Babbage propose de recourir à des cartons adéquatement perforés, en grand nombre si nécessaire. Certains des cartons spécifient l’opération à effectuer, d’autres les colonnes où prendre ou ranger les valeurs sur lesquelles l’opération s’applique. Les cartons s’enchaînent pour exécuter la suite des calculs requis pour une expression donnée. C’est bien d’un programme dont il est question, c’est-à-dire d’une description des opérations élémentaires à enchaîner sur des valeurs pour obtenir la valeur finale de l’expression. Menabrea envisage déjà la mise en œuvre de plusieurs milliers de cartons.

    Menabrea explicite plusieurs exemples d’enchaînement de calculs. Il les présente sous la forme de tableaux décrivant les opérations, les valeurs sur lesquelles elles portent et les colonnes qui les mémorisent. Il poursuit la discussion de plusieurs points fondamentaux, tels que le traitement des signes, la possibilité de réutiliser des résultats communs à plusieurs expressions, l’utilisation de constantes préenregistrées, les notions d’itération et de compteur, qui impliquent un test et une action correspondante, le problème de la détection de valeurs extrêmes et l’interruption à provoquer, etc.

    Menabrea donne plusieurs exemples d’enchaînements de calculs, où les résultats d’opérations deviennent les données d’autres. Sur ce premier exemple de son article, les trois colonnes du milieu spécifient, de gauche à droite : la nature de l’opération, les variables sur lesquelles elle porte, la variable destinée à recueillir le résultat. Chaque ligne de ces 3 colonnes est ainsi l’équivalent actuel d’une instruction en langage d’assemblage.

    Dans son article, Menabrea se focalise sur la présentation des principes de la machine analytique ; il ne fournit aucune information sur sa mise en œuvre. Ainsi, rien n’est dit sur les mécanismes du moulin pour effectuer les quatre opérations arithmétiques de base, ou encore sur les mécanismes de transfert des valeurs du magasin au moulin et vice-versa. Rappelons qu’à ce jour, la machine analytique n’a jamais été réalisée, à l’exception d’une version du moulin développée par le fils de Babbage, Henry Prevost, en 1910.

    Menabrea a choisi d’exposer, de façon pédagogique, les principes de l’automatisation d’un enchaînement de calculs, aussi complexe soit-il. C’est donc du principe même d’un ordinateur dont il est question, à une différence très importante près : le programme, matérialisé par des cartons perforés, n’est pas inscrit dans la mémoire de la machine au même titre que les données et ne peut donc pas faire lui-même l’objet de calculs.

    En conclusion de son article, Menabrea revient sur l’intérêt de cette automatisation des calculs. Il s’agit d’abord de pouvoir calculer correctement et vite. L’exactitude des calculs est la conséquence de leur automatisation : l’absence d’intervention humaine est un facteur positif déterminant, explique Menabrea. Quant à la vitesse, il rapporte les ambitions de Babbage de pouvoir exécuter la multiplication de deux nombres de 20 chiffres en 3 minutes. Il aborde même la possibilité de faire mener plusieurs calculs en parallèle… Mais le dernier point met en avant une « économie d’intelligence ». Ayant insisté plusieurs fois dans son article sur le fait que la machine analytique est dépourvue d’intelligence, il souligne que « la machine, pouvant faire elle-même toutes ces opérations matérielles, épargne le travail d’intelligences qui peuvent être employées plus utilement ». Et de conclure : « […] qui pourrait prévoir les conséquences d’une telle invention ? ». Nous sommes alors en 1842…

    Publié en langue française dans une revue non spécialisée, cet article aurait probablement peu retenu l’attention s’il n’avait, peu après, fait l’objet d’une traduction en anglais commentée par la très médiatique (le terme est anachronique, certes, mais justifié par la fascination que la dame exerce encore aujourd’hui sur de nombreux informaticiens) Lady Ada Lovelace, qui l’enrichit de plusieurs commentaires qui en triplent presque la longueur. Cette traduction, terminée en août 1843, parut en septembre de la même année dans le 3e volume des Scientific Memoirs, un journal spécialisé, sous la direction de Richard Taylor, dans la publication de traductions d’articles scientifiques, ainsi que de comptes-rendus de colloques étrangers.

    Plus de quarante ans plus tard, Menabrea reviendra sur cette publication et son contexte dans un des Comptes-rendus Hebdomadaires de l’Académie des Sciences (tome 99, Juillet-Décembre 1884, Paris, Gautier-Villars, imprimeur-libraire) :

    (page 181) « Au début de ma modeste carrière scientifique, je fus en rapport personnel avec Babbage, qui m’expliqua son système. Je crus l’avoir compris et j’en fis, il y a bien des années, l’objet d’un article dans la Bibliothèque universelle de Genève, n° 82, octobre 1842. Ma description fut agréée par Babbage lui-même et fut traduite en anglais dans les Scientific Memoirs, vol. III, sans nom de traducteur ; mais cette traduction était accompagnée de notes du plus haut intérêt, qui développent d’une manière lumineuse ce que je n’avais pu indiquer que d’une façon incomplète. De prime abord, j’avais cru que Babbage lui-même en était l’auteur ; mais, par une lettre du 28 août 1843 que voici, il me détrompa en me donnant le nom de mon mystérieux traducteur, qui n’était rien moins qu’une très noble et très belle dame anglaise, dont le nom sera transmis à la postérité sur les ailes d’un des plus grands poètes de notre siècle : c’était Lady Ada Lovelace, la fille unique de Lord Byron. »

    My dear Sir,

    I avail myself of the kindness of lady Murray to convey you a translation with notes of your admirable explanation of the analytical engine. You will probably have received the rough proofs I sent to Turin by my son and I am now at liberty to give you the name of your fair commentator : she is the countess of Lovelace, the only daughter of your great poet lord Byron.

    Should you be in Turin during the short visit of lady Murray, you will do a great favor by pointing out to her the scenery most deserving attention in your beautiful country.

    Accept, my dear Sir, the sincere expression of my esteem and regard. I am your, etc.

    Charles Babbage,
    1, Dorset street, Manchester-square, London
    28 august 1843

    Et le général Menabrea conclut ainsi, en 1884, son exposé à l’Académie des Sciences :

    « Puissent ces souvenirs que j’exhume sur la fin de ma carrière, provoquer l’accomplissement d’une œuvre qui serait précieuse pour la Science et un triomphe pour l’art mécanique, en même temps qu’un hommage rendu à la mémoire d’un homme de génie, de même qu’à celle de la noble dame, qui, par son exemple, a démontré que la plus belle moitié du genre humain peut avoir, pour les hautes Sciences, des aptitudes égales à celles de l’autre moitié qui, modestement, veut bien s’appeler le sexe fort. »

    Newsletter

    Le responsable de ce traitement est Inria. En saisissant votre adresse mail, vous consentez à recevoir chaque mois une sélection d'articles et à ce que vos données soient collectées et stockées comme décrit dans notre politique de confidentialité

    Niveau de lecture

    Aidez-nous à évaluer le niveau de lecture de ce document.

    Si vous souhaitez expliquer votre choix, vous pouvez ajouter un commentaire (Il ne sera pas publié).

    Votre choix a été pris en compte. Merci d'avoir estimé le niveau de ce document !

    François Rechenmann

    Directeur de recherche Inria, spécialiste de bio-informatique.

    Voir le profil