Deux portraits#
Domaine public · Wikimedia Commons
Domaine public · Wikimedia Commons
Qui était-elle ?#
Augusta Ada King, comtesse de Lovelace (1815-1852), est la fille du poète Lord Byron. Sa mère, craignant l'héritage « poétique » du père, lui fait donner une éducation rare pour une femme de l'époque : mathématiques et sciences. À 17 ans, elle rencontre Charles Babbage et se passionne pour ses machines à calculer mécaniques.
En 1843, elle traduit en anglais un article du savant italien Luigi Menabrea décrivant la machine analytique de Babbage - un ordinateur mécanique jamais construit. Surtout, elle y ajoute ses propres Notes (A à G), trois fois plus longues que l'article d'origine. C'est là qu'elle invente le tout premier programme informatique de l'histoire.
Ce qu'elle a écrit#
Ada ne voyait pas seulement une machine à calculer : elle voyait une machine à manipuler des symboles, donc potentiellement de la musique, des images, de l'art. Quelques-unes de ses phrases, étonnantes de modernité :
Son premier algorithme#
La Note G contient un tableau décrivant, pas à pas, comment la machine analytique calculerait les nombres de Bernoulli (une suite célèbre en mathématiques). Ce tableau est le tout premier programme informatique de l'histoire : une invention d'Ada Lovelace.
Comment lire ce tableau ? Chaque ligne est une opération numérotée (de 1 à 25), et les colonnes indiquent :
| Colonne du tableau d'Ada | Ce qu'elle contient |
|---|---|
| N° de l'opération | L'ordre des étapes, de 1 à 25 |
| Nature de l'opération | Le calcul à faire : ×, ÷, + ou − |
| Variables en jeu | Les « cases mémoire » (V1, V2, V3...) sur lesquelles on agit |
| Variable résultat | La case où ranger le résultat |
| Énoncé du résultat | La formule obtenue à cette étape |
On y reconnaît tout ce qui fait un programme moderne : des variables (les V), une suite d'opérations ordonnées, et même une boucle - un groupe d'opérations répété pour produire chaque nombre de la suite. En Python d'aujourd'hui, son idée tiendrait en quelques lignes :
# L'esprit de la Note G, en Python moderne : on répète un bloc d'opérations def bernoulli_par_recurrence(rang): resultat = 0 for etape in range(rang): resultat = operation_suivante(resultat, etape) # la "boucle" d'Ada return resultatDétail savoureux : la table publiée en 1843 contenait une petite erreur (une opération mal recopiée à l'impression). Le premier programme de l'histoire contenait donc aussi... le premier bug typographique. 🐛
Ce qu'elle a préparé pour la machine#
Le programme des nombres de Bernoulli est son chef-d'œuvre, mais ses sept Notes (A à G) forment un véritable mode d'emploi de l'informatique, écrit avant l'informatique. On y trouve :
| Idée | Ce qu'Ada y explique |
|---|---|
| La mémoire | Comment la machine stocke des variables sur des cartes et les réutilise. |
| Les opérations | Comment enchaîner des calculs dans un ordre précis, automatiquement. |
| La répétition | Comment répéter un même groupe d'opérations (l'ancêtre de la boucle) pour traiter une suite entière. |
| La généralité | Que la machine pourrait résoudre toutes sortes de problèmes (systèmes d'équations, séries...), pas seulement un calcul unique. |
| La portée | Que manipuler des symboles ouvre la porte à la musique et à l'art, au-delà des nombres. |
C'est cette vision - une machine universelle qui suit des recettes (des algorithmes) pour manipuler n'importe quel symbole - qui fait d'Ada Lovelace bien plus qu'une calculatrice : l'inventeuse du tout premier programme informatique, et l'une des premières à imaginer ce qu'on appelle aujourd'hui l'informatique.
Pour continuer#
L'histoire des algorithmes (Euclide, Al-Khwarizmi, Turing) → · retour au hub des algorithmes