Terminale · A0
terminale
Aller plus loin · Recit

1843 : le premier programme de l'histoire

Ada Lovelace écrit un programme pour une machine qui n'existera jamais.

Londres, août 1843. Dans les Scientific Memoirs de Richard Taylor paraît une traduction signée de trois initiales, A.A.L. Le texte original est un mémoire en français publié à Genève l’année précédente : l’ingénieur italien Luigi Menabrea, futur Premier ministre de son pays, y décrit une machine extraordinaire imaginée par le mathématicien anglais Charles Babbage, la machine analytique. Une machine à engrenages capable, sur le papier, d’enchaîner des calculs selon des instructions perforées sur des cartes, comme les métiers à tisser de Jacquard enchaînent les motifs.

La traductrice s’appelle Augusta Ada Lovelace. Elle a vingt-sept ans, une formation mathématique solide et une idée bien à elle : traduire ne lui suffit pas. Elle ajoute au mémoire sept notes, de A à G, qui triplent la longueur du texte. La dernière, la Note G, est devenue l’un des documents les plus célèbres de l’histoire des sciences.

Ce que contient la Note G

Un tableau. Colonne par colonne, ligne par ligne, la Note G décrit la suite exacte des opérations que la machine devrait exécuter pour calculer les nombres de Bernoulli, une famille de rationnels (16\frac{1}{6}, puis 130-\frac{1}{30}, 142\frac{1}{42}, …, que la Note numérote B1,B2,B3B_1, B_2, B_3 : les tables modernes les indexent autrement) qui apparaît partout en analyse, jusqu’à obtenir celui qu’elle note B7B_7. Chaque quantité intermédiaire est logée dans une variable numérotée V1,V2,V_1, V_2, \dots ; un exposant indique combien de fois la variable a changé de valeur ; et surtout, un même bloc d’opérations est répété autant de fois que nécessaire, avec des valeurs différentes à chaque tour. Des variables, une boucle, une suite d’instructions destinée à une machine : ce qu’on appellerait aujourd’hui, sans hésiter, un programme.

Un acte de logique pure

Voici le point qui concerne directement ce chapitre. La machine analytique n’a jamais été construite : trop coûteuse, trop en avance sur la mécanique de son temps. Lovelace a donc écrit un programme qu’elle savait ne jamais pouvoir exécuter. Impossible de lancer le calcul pour voir ; il fallait prévoir tous les cas à la main, dérouler mentalement chaque tour de boucle, suivre chaque variable à la trace. C’est exactement l’exercice que vous avez fait dans la section 6 du cours, et dans l’exercice du chapitre : exécuter un script Python sur papier, ligne à ligne, sans machine. En 1843, c’était toute l’informatique disponible. Avant d’être de l’informatique, programmer est un acte de logique : anticiper, sans filet, tout ce qu’une machine ferait si elle existait.

L’ironie est délicieuse : quand on a enfin rejoué le programme sur des machines modernes, on y a trouvé une erreur. À l’opération 4, une division est inversée (V5÷V4V_5 \div V_4 au lieu de V4÷V5V_4 \div V_5), ce qui aurait faussé le résultat final. Certains y voient, avec prudence, le premier bug de l’histoire.

Une honnêteté s’impose : la part exacte de Lovelace et de Babbage dans ce tableau reste débattue par les historiens, Babbage ayant fourni les formules et rédigé auparavant des fragments de programmes, tout en reconnaissant que l’élaboration algébrique des notes était l’œuvre de Lovelace.

L’objection de Lovelace

La Note G contient une seconde prophétie, en creux. Lovelace y écrit, à propos de la machine : « The Analytical Engine has no pretensions whatever to originate anything. It can do whatever we know how to order it to perform. » Autrement dit, la machine ne prétend nullement créer quoi que ce soit ; elle fait ce qu’on sait lui ordonner de faire. En 1950, Alan Turing prendra cette phrase suffisamment au sérieux pour la baptiser « objection de Lady Lovelace » et tenter de la réfuter. Le débat qu’elle a ouvert, celui de savoir si une machine peut être créative ou si elle ne fait que recombiner ce qu’on lui a donné, est aujourd’hui plus vivant que jamais.

Sources

  • A. A. Lovelace, notes de la traduction de L. F. Menabrea, Sketch of the Analytical Engine invented by Charles Babbage, Taylor’s Scientific Memoirs, vol. III, Londres, 1843 (la citation figure dans la Note G).
  • L. F. Menabrea, Notions sur la machine analytique de M. Charles Babbage, Bibliothèque universelle de Genève, 1842.
  • « Note G », Wikipedia (détails du tableau, de l’erreur de l’opération 4 et du débat d’attribution).
  • A. M. Turing, Computing Machinery and Intelligence, Mind, 1950 (section « Lady Lovelace’s Objection »).
← Retour au chapitre A0