To Ada with Love...

Cela ne se sait pas assez, et pourtant, il faudrait bien que cela se sache:

Le premier informaticien de l'histoire est... UNE informaticienne!

Vous trouverez sans doute quelques esprits chagrins pour contester ce fait, voire mesquinement, en ne lui attribuant que la deuxième place, réservant la première au concepteur de la machine, Charles Babbage, avec qui elle travailla en étroite collaboration. Sauf qu'il ne faut pas confondre hardware et software: si Babbage a conçu la première machine de calcul programmable, à la façon d'un ordinateur moderne, c'est Ada, comtesse de Lovelace qui écrivit le premier programme pour cette machine. Il faut insister sur le mot programmable:
Mais concevoir une machine "universelle", apte à effectuer une infinité d'algorithmes différents, non nécessairement envisagés préalablement à la conception de la machine, voilà qui était plus que nouveau: révolutionnaire, au risque d'être trop en avance sur son temps! Babbage et Ada furent, à part égales, les artisans de cette révolution.

Pour commémorer le bicentenaire de la naissance d'Ada (le 10 Décembre 1815), le Science Museum de Londres a eu la bonne idée d'organiser (temporairement) une présentation spécifique d'objets provenant presque essentiellement de ses collections propres. Rien de nouveau, donc, mais un regroupement destiné à mettre en valeur ce personnage peu commun. Le Mathouriste se devait de vous en rendrer compte... en y mêlant quelques autres clichés en rapport.
S'il fallait résumer Ada en une seule image, nous proposerions celle-ci , qui réunit son portrait en pied, la Machine à Différences n°1 (par laquelle Ada a eu le coup de foudre pour le travail de Babbage), et la Machine Analytique. Ou plutôt, des fragments de ces machines qui ne furent pas réalisées en entier de son vivant.



la Machine  à Différences n°1 (premier plan)
la Machine Analytique (à droite du portrait)

L'Héroïne

Is thy face like thy mother's, my fair child!
ADA! sole daughter of my house and heart?
When last I saw thy young blue eyes they smiled,
And then we parted, - not as now we part,
But with a hope. -
                            Awaking with a start,
The waters heave around me; and on high
The winds lift up their voices: I depart,
Whither I know not; but the hour's gone by,
When Albion's lessening shores could grieve or glad mine eye.



Ada (1815 -1852) est en effet née Ada Byron: elle est la fille du grand poète anglais, sa seule fille légitime, chérie sans doute... mais l'appel de l'aventure, comme le suggère l'extrait ci-dessus, est le plus fort: il quitte sa femme un mois après la naissance de l'enfant, et définitivement l'Angleterre quatre mois après; il ne reverra jamais Ada. Elle a 8 ans quand il meurt de fièvres alors qu'il combat pour l'indépendance grecque.
Mais Ada est élevée par sa mère, qui a du goût pour les sciences, dans la bonne société londonnienne: elle y côtoie écrivains (Dickens) et savants (De Morgan, Faraday), rencontre en 1833 Babbage (on le sait par son journal) et se marie en 1835 avec un certain William King, fait comte en 1838: la voilà Ada, comtesse de Lovelace, titre sous lequel on la connait le mieux.

Ada en Comtesse (1836)
 par Margaret Sarah Carpenter 

À Londres, elle vit dans une maison de l'élégant St-James Square, dans le West End. Une "plaque bleue" a été apposée en souvenir sur sa résidence; par contre, le plan général du square, qui recense les diverses célébrités du voisinage, oublie de la mentionner au numéro 12... nous avons donc pris la liberté de compléter la photo!


Ci-dessus et ci-contre:
l'entrée du  n°12


Avec Charles Babbage

La rencontre avec Charles Babbage est une sorte de coup de foudre intellectuel. 


Charles Babbage (sculpteur inconnu)
(National Museum of Computing, Bletchley, Angleterre)
Machine à différences n°1,
Arithmeum, Bonn (Allemagne)

Avec sa machine à différences aussi: Ada en perçoit d'emblée l'intérêt.


lettre d'Ada à Charles Babbage (22/02/1841):
"je suis maintenant en train d'étudier attentivement les Différences Finies ..."

Certes, ce n'est encore qu'un calculateur mécanique, dédié à un seul type de tâche, mais capable de l'exécuter avec rapidité et précision. Pour le dire un peu vite, c'est un calculateur de polynômes; or beaucoup de calculs de fonctions qu'utilisent astronomes et ingénieurs sont, sinon de vrais polynômes, du moins approchables avec une bonne précision par des polynômes. Et puis, et surtout, c'est un mode de calcul malin, car il n'utilise que des additions, alors qu'on s'attendrait à devoir faire additions et multiplications (Il est significatif de savoir que de la naissance des ordinateurs à nos jours, les concepteurs de circuits ont dû beaucoup travailler sur les circuits multiplicateurs pour qu'ils rivalisent avec les additionneurs).
À ce stade, vous brûlez peut-être de connaitre plus de détails... mais leur place est dans notre page dévolue aux machines de Babbage!

Pour le dire encore d'une autre façon, c'est une machine intermédiaire entre une calculatrice classique (qui effectue les quatre opérations arithmétiques) et un ordinateur , qui exécute une suite d'instructions quelconque combinant ces opérations, ce à quoi vont parvenir Ada et Babbage, dans une version mécanique.  

 Co-conceptrice de la Machine Analytique

Lorsqu'une dizaine d'années après leur première rencontre, le tarissement de ses financements force Babbage à interrompre la construction de la Machine à différences n°1, et qu'il se toune vers la conception de sa Machine Analytique, la correspondance échangée avec la comtesse montre sans équivoque un travail à parts égales sur cet engin révolutionnaire. Il s'agit cette fois d'une machine universelle, apte à l'exécution de tout algorithme qui lui sera communiqué par un jeu de cartes perforées. Unité de calcul, mémoires internes et externes, imprimantes, programmes exécutant séquences, tests et boucles: rien n'y manque qui en fait l'égal mécanique d'un ordinateur. Tout ce que les premiers ordinateurs des années 1950, et mieux, tout ce qu'un ordinateur des années 2000 peut calculer, cette machine le peut aussi : seul le temps d'exécution va progresser avec la montée en vitesse des processeurs.

Noyau de Machine Analytique (Moulin) et ses cartes perforées
Cartes
 (de programme et de données)

(Science Museum, Londres)

Ces fameuses cartes perforées -les premières jamais dévolues au pilotage d'une machine de calcul- fidèlement décrites (on peut en juger ci-dessous), constituent une élément central dans un célèbre roman ayant fondé le genre steampunk. Ada y apparait "dans son propre rôle", mais les auteurs, dont le propos fondateur est une bifurcation imaginaire de l'histoire, lui prêtent une vie plus longue. Dans l'extrait qui suit, Ada, victime d'une tentative de vol, confie ses précieuses cartes au héros de l'histoire:
" - Ce coffret vous appartient-il, Madame? dit Mallory en le lui tendant [...]
Elle considéra le coffret sans donner l'impression de le reconnaître. C'était un bel objet en bois de rose poli, aux coins sertis de cuivre; ç'aurait pu être la boîte à gants d'une dame de qualité, mais il était trop massif et manquait d'élégance. Le long couvercle était assujetti par une painre de minuscules crochets en cuivre. Elle tendit la main pour le caresser d'un index ganté comme pour s'assurer de son existence physique. Quelque chose dans l'apparence de l'objet sembla l'aiguillonner et lui faire progressivemment  prendre conscience de sa propre détresse.
 - Voulez-vous garder cela pour moi, Monsieur? implora-t-elle finalement d'une voix tremblante, bizarrement contrite. Voulez-vous le garder pour moi et le tenir en lieu sûr?
 - Bien sûr, dit
Mallory, touché bien malgré lui.
[...]
Mallory, tendu par l'expectative, se surprit à ouvrir le coffret en bois de rose; ses pouces agirent sur les petits crochets en cuivre comme mus par leur propre volonté. L'intérieur, tendu de feutrine verte, contenait une longue pile de cartes d'un blanc laiteux. Il en extirpa une du milieu du paquet. [...]Elle était percée d'environ trois douzaines de rangées serrées de trous circulaires pas plus gros que ceux d'un bouton en nacre de bonne qualité. Trois de ses coins étaient légèrement arrondis et le quatrième était coupé en oblique. [...]  L'un des coins portait la mention « N° 154» manuscrite à l'encre mauve pâle. Mallory replaça délicatement la carte dans la pile et ferma le coffret."


W. GIBSON, B. STERLING, La Machine à Differences [roman] (Le Livre de Poche)


Pour en savoir plus sur la machine (à commencer par des images) et ses programmes, rendez-vous dans notre page dévolue aux machines de Babbage; vous y trouverez d'ailleurs des commentaires d'Ada, toujours clairs et pertinents.

Si la conception mécanique revient à Babbage, bien rôdé par son travail sur la Machine à Différences, Ada se concentre sur les aspects logiciels, convaincue que des exemples éloquents seront essentiels pour faire réaliser l'intérêt de la machine à ceux qui pourront devenir après-demain ses utilisateurs... et demain, ses financiers!
Une occasion se présente:
Babbage donne à Turin, en 1840, quelques conférences sur la Machine Analytique, qui servirent  de matière à un traité rédigé et publié à Genève par un auditeur intéressé, Luigi Menabrea.

"Quelque temps après la parution de son Mémoire [...], feue la comtesse Lovelace m'informa qu'elle en avait effectué la traduction. Je lui demandais pourquoi elle n'avait pas écrit elle-même un article original sur un sujet avec lequel elle était si intimement familiarisée. À quoi Lady Lovelace répondit que la pensée ne lui en était pas venue. Aussi suggérai-je qu'elle ajoutât quelques notes au mémoire de Menabrea; l'idée fut immédiatement adoptée . "

C. Babbage, Fragments de la Vie d'un Philosophe ( 1864)

Ada se passionne pour ce travail et
finalement, ses notes représenteront plus des deux tiers de l'ensemble! Les échanges épistolaires sont là pour en témoigner

"Mon cher Babbage,

Je travaille dur, vraiment dur pour vous, comme le Diable, en fait (le Diable que je suis peut-être).
Je pense que vous serez heureux d'apprendre  que j'ai fait ce qui me semble être d'importantes extensions et améliorations [...]
"

A. Lovelace, 10/07/1842

 Lettre d'Ada à Babbage et traduction partielle


"Ma chère lady Lovelace,

Votre Note D me ravit. Votre style y a sa clarté habituelle; elle ne requiert qu'une insignifiante correction que je vais y apporter
[...] "

C. Babbage, 30/06/1843

 Lettre de Babbage à Adaet traduction du début

Si les thèmes mathématiques furent choisis en commun (on lira plus loin ce qu'en dit Babbage), les Notes d'Ada vont beaucoup plus loin que les écrits de Babbage de la même époque, tant en ce qui concerne les indispensables mises au point sur la nature et les possibilités de la machine (qu'on se rappelle toutes celles qu'il a fallu faire sur les ordinateurs qu'on appelait encore cerveaux électroniques dans les années 1960...)

"Une mise en garde est souhaitable quant aux idées exagérées que l'on pourrait se faire des pouvoirs de la Machine Analytique. En considérant tout nouveau sujet, il y a une tendance fréquente, dans un premier temps à surestimer ce que l'on trouve déjà intéressant et remarquable; et dans un deuxième temps, par une sorte de réaction naturelle, à [le] sousestimer [...] .
La 
Machine Analytique n'a aucune prétention à inventer quoi que ce soit. Elle peut faire toutes les choses dont nous savons comment lui dire de les traiter. Elle peut suivre les formules de l'analyse; mais elle n'a aucun pouvoir de découvrir quelque relation ou vérité analytique que ce soit. Sa compétence est de nous assister en rendant disponible ce à quoi nous sommes familiarisés. "

A. Lovelace, Notes Additionnelles à la Description de la Machine Analytique, 1842


Les mots en gras sont soulignés par Ada Lovelace elle-même (NdT)

que la réflexion philosophique sur l'avenir, particulièrement l'impact de l'usage de l'ordinateur sur le développement des Mathématiques: l'étude du chaos et des fractales (à partir des années 1980) lui donnera raison, et ce n'est bien sûr pas le seul exemple!

"Mais il se peut qu'elle exerce une influence indirecte et réciproque sur la science d'une autre manière. Car, en combinant ainsi les vérités et les formules de l'analyse [...], les relations et la nature de nombreux sujets de cette science se trouveront éclairées sous des jours différents, et de ce fait plus profondément explorées. C'est indéniablement une conséquence indirecte, et quelque peu spéculative, d'une telle invention. "

A. Lovelace, Notes Additionnelles à la Description de la Machine Analytique, 1842


Et c'est loin d'être tout: nous la retrouverons un peu plus loin en visionnaire de l'Informatique. Mais d'abord, son titre de célébrité...

Auteur(e) du  "Premier Programme" Informatique


"Je tiens à mettre quelque chose sur les nombres de Bernoulli dans une de mes Notes, comme exemple de la manière dont la machine peut travailler sur des  fonctions non explicites, sans qu'elles aient été préalablement évaluées par le cerveau et la main d'un être humain. Rappelez moi les formules indispensables pour cela."

A. Lovelace, lettre à Babbage (1843)
"Nous discutâmes ensemble des diverses illustrations qu'il conviendrait d'introduire: j'en proposai plusieurs, mais la liste arrêtée fut de sa seule et entière responsabilité. Il en fut en vérité de même de leur traitement algébrique, à l'exception toutefois de celui touchant aux nombres de Bernoulli, que je proposai de faire pour en éviter le souci à Lady Lovelace. Mais elle me le renvoya pour correction, après y avoir découvert une grave erreur que j'avais commise . "

C. Babbage, Fragments de la Vie d'un Philosophe ( 1864)

C'est le programme de calcul de ces nombres, présenté dans la denière note (G) de Lovelace, que l'on considère comme le premier. Babbage, si l'on en croit ses mémoires, avait donc peut-être écrit, lui... le premier programme faux de l'histoire!
Il faut évidemment s'entendre sur le sens de cette expression.

D'abord, Babbage ne peut avoir conçu sa machine en complète indépendance d'exemples d'algorithmes implémentables; d'ailleurs, les exemples du texte de Menabrea précédant les notes d'Ada le prouvent: il ne faut pas oublier qu'il s'agit d'une mise au propre de notes issues des conférences de Babbage. Si par exemple, on considérait comme premier programme informatique la résolution d'un système 2x2, Babbage, qui le décrit, serait le premier auteur d'un programme. Seulement, celui-ci a deux "inconvénients" pour être enregistré n°1 à notre livre des records:
  1. ce n'est qu'une séquence d'instructions, sans boucle ni tests;
  2. n'importe quel humain peut le faire (ou, du moins, presque: à son entrée en seconde, l'auteur de ces lignes essuya un 02/20 à la première interro-écrite-surprise: 2 systèmes, et 2 réponses fausses...)

Au contraire,  l'exemple
choisi et développé par Ada est le premier:
  1. qui comporte deux boucles imbriquées pour un calcul non trivial, selon le schéma
    Pour p de 2 à n faire
             .....
            pour k de 1 à p faire
                     .....

  1. illustre de façon convaincante la puissance de la machine, sa capacité à aller "tranquillement" (mais bien plus rapidement et bien plus sûrement!) au delà des limites d'épuisement d'un calculateur humain. C'est très exactement ce qu'en dit Ada dans sa lettre!
 Bref, le premier programme "digne de ce nom" et le premier à démontrer de façon éclatante l'utilité d'une machine universelle programmable, et celle des programmes, objets "simples" à écrire mais capables de prolonger formidablement l'action du cerveau humain, au même titre que les outils ou les armes prolongeaient et augmentaient la puissance physique de ses bras.

Ce programme, en voici la "feuille de suivi" qui marque sa progression et l'état (contenu) des variables (explication de principe des feuilles de programme ici) :


LE célèbre programme, une page spéciale à déplier dans le livre ! (aggrandir en cliquant)


Le petit coin de la technique: le Problème Mathématique, le Traitement Informatique

(à l'usage des curieux et amateurs... les autres peuvent sauter sans inconvénient!)


Les 
nombres de Bernoulli sont une famille de constantes intervenant dans les calculs de sommes de puissances d'entiers et de nombreux développements en série de fonctions usuelles liées à tan, cotan, th,  coth.... Ils ont été introduits par Jakob Bernoulli (1654-1705); le plus commode est de les définir à la manière d' Euler comme coefficients du développement

En chassant le dénominateur, et en développant l'exponetielle, on  écrit x comme produit de deux développements

ce qui fournit une relation de récurrence permettant de calculer B2n-1 en fonction de tous les précédents; elle est de la forme
0 = a(0) + a(1) B1 + a(3) B3 + a(5) B5 + ... + a(2n-1) B2n-1 

où les
a(k) s'explicitent  comme des produits et quotients en fonction de k, et se calculent eux aussi de proche en proche.

Le programme d'Ada exécute cette récurrence. Chaque ligne désigne deux variables, effectue une opération sur celels-ci et place le résultat dans une autre variable
À titre d'exemple, les lignes (1) à (6) préparent le calcul de
 a(0) = (-1/2) . (2n - 1) / (2n + 1)
 Le produit  2n est calculé, placé dans les variables V4 et V5 qui "évolueront", l'une se faisant retrancher , l'autre se faisant ajouter, le contenu de V1  (qui vaut 1). On exécute là l'instruction "moderne"  d'affectation

V reçoit V - W
dont diverses écritures conventionnelles selon le langage choisi, peuvent être
V = V - W; V == V - W; V := V - W
Les lignes (13) à (23) constituent l'instruction de calcul  d'un a(k) Bk qui sera répétée en boucle (avec sommation) autant de fois que nécessaire pour le calcul d'un B2n-1; autrement dit, il s'agit de la répétition de la boucle intérieure. 



Pionnière du Calcul Formel


"De  nombreuses personnes, qui ne s'y connaissent guère en mathématiques imaginent, que, puisque le travail de la machine est de fournir ses résultats en notation numérique, la nature de ses processus soit, en conséquence, être arithmétique et numérique, plutôt qu'algébrique et analytique. C'est là une erreur. La machine peut manipuler et combiner des quantités numériques exactement comme si c'étaient des lettres ou n'importe quels autres symboles généraux; et en fait elle peut fournir des résultats en notation algébrique, pourvu quelle ait été alimentée de même. Elle peut fournir simultanément trois ensembles de résultats, à savoir des résultats symboliques, numériques (c'est son principal objet) et des résultats algébriques en notation littérale. "

A. Lovelace, Notes Additionnelles à la Description de la Machine Analytique, 1842


Les mots en gras sont soulignés par Ada Lovelace elle-même (NdT)

À leurs débuts dans l'époque moderne, les ordinateurs ne sont vus que comme machines de traitement numérique; il faudra attendre l'explosion des performances des années 80, tant en vitesse qu'en capacité de mémoire, pour qu'on envisage de leur faire faire du calcul formel -c'est à dire du calcul algébrique sur des objets... eux aussi algébriques, et non plus simplement des nombres. Et cela commencera par la manipulation des objets les plus simples, les polynômes. Or, non seulement Babbage et Ada envisagent de tels calculs, un produit par exemple (ce qui revient à déterminer tous ses coefficients), mais Ada propose d'aller plus loin avec des polynômes trigonométriques. La Note E propose à titre d'exemple le produit d'une série par un polynôme trigonométrique à deux termes:

A + A1 cos θ  + A2 cos 2θ  + A3 cos 3θ + ...
B + B1 cos θ
à mettre sous la forme
C + C1 cos θ  + C2 cos 2θ  + C3 cos 3θ + ...

tout en précisant qu'il serait facile de prendre davantage de termes pour le second. L'algorrithme repose sur la linéarisation d'un produit de cosinus et collecte tous les coefficients relatifs à un même cos .
Et ce n'est pas qu'un jeu gratuit de mathématiciens:

"Ce calcul de série trigonométrique n'est pas seulement un excellent exemple pour illustrer ce que peut faire la machine, il est aussi du plus haut intérêt pratique qui soit, en raison de son  usage fréquent en astronomie . "

A. Lovelace, Notes Additionnelles à la Description de la Machine Analytique, 1842


"[...] nous voudrions mentionner, à ce stade, un problème particulier qui nous parait une illustration particulièrement adaptée de ce dont une telle machine serait capable et qu'un cerveau humain trouverait difficile ou impossible à obtenir avec une totale sûreté. Dans la solution du célèbre Problème des Trois Corps, il y a, sur 295 coefficients de perturbations lunaires donnés par M. Clausen, comme résultats des calculs de Burg, Damoiseau (deux versions) et Burkhardt, 14 coefficients dont le signe diffère, et parmi les autres, seulement 101 (soit environ le tiers) qui sont les mêmes, en signe comme en valeur. Ces écarts, en général petits individuellement, peuvent provenir d'une détermination erronée des coefficients calculés, ou de différences dans les données issues de l'observation, ou des deux à la fois. La première cause est la source la plus fréquente des erreurs des calculs astronomiques, et c'est cela que la machine permettrait d'éviter en totalité. "

A. Lovelace, Notes Additionnelles à la Description de la Machine Analytique, 1842


Les mots en gras sont ici soulignés par le traducteur


Rapprochons ce texte prophétique d'un passage  de l'introduction de l'ouvrage Calcul Formel: Mode d'Emploi, de Gomez, Salvy et Zimmermann, paru en 1995 (époque à laquelle les systèmes de calcul formel tels que Maple ou Mathematica deviennent disponibles sur les ordinateurs individuels). Il 
traite du même problème (vu par un autre astronome) dans son instance la plus célèbre: Soleil, Terre, Lune:

"En 1858, Charles DELAUNAY s'adressa en ces termes à l'Académie des Sciences: «J'ai l'honneur de faire part à l'Académie de l'achèvement des calculs que j'ai entrepris il y a plus de douze ans...». [...]  Pour obtenir une approximation précise du mouvement de la Lune, DELAUNAY  calcule un développement de la fonction pertubatrice par rapport à quatre petites quantités [...]  
Les opérations nécessaires pour mener à bien ce
calcul sont la recherche de développements limités à une ou plusieurs variables, la dérivation, l'intégration, et la linéarisation d'expressions trigonométriques. Aujourd'hui, avec un système [de calcul formel] sachant effectuer ces opérations, on obtient en quelques minutes le développement de la fonction pertubatrice au même ordre que DELAUNAY.
Sans pour autant discréditer le travail gigantesque de
DELAUNAY (une seule erreur a été trouvée dans sa formule de de 138 pages de la fonction pertubatrice ), cet exemple donne un aperçu des nouveaux outils de valcul scientifique disponibles aujourd'hui sur ordinateur."

Cl. Gomez, B. Salvy, P. Zimmermann, , Calcul Formel: Mode d'Emploi (Masson), 1995
Ci-dessous, pour le premier terme (en sin l' ) du développement de la longitude de la lune , le coefficient prend déjà trois pages!!!
(Source: Googlebooks, première page "recomposée")

 
Portrait de Delaunay à l'Observatoire de Paris.
Remarquer , sous sa main droite, les deux tomes de la
Théorie de la Lune.

Bref, la comtesse de Lovelace démontre là qu'elle est de 150 ans en avance sur son temps. Et s'il ne fallait qu'un argument pour lui offrir une des premières places dans notre virtuel Computer Programming Hall of Fame, nous choisirions celui-ci plutôt que la question, finalement un peu oiseuse, de savoir si elle est bien, au moins, la première à écrire un programme et pas, par quelque hasard, la deuxième ou la troisième.

La Fin, l'Héritage

Apès avoir donné naissance à trois enfant, Ada décède en 1852, d'un cancer de l'utérus; elle était âgée de 36 ans seulement.


Une des premières... boucles de l'Informatique:
une mèche-souvenir d'Ada.
Croquis exécuté par sa mère:
Ada sur son lit de mort.
(Science Museum, Londres)

Seon son vœu, elle est enterrée aux côtés de son père, dans l'église St. Mary Magdalene, Hucknall ( Nottinghamshire), près de Newstead Abbey, demeure familiale des Byron.

Le langage de programmation Ada, apparu en 1980, a été nommé en son honneur.


Quelques liens...

et tout d'abord:

Pour en savoir plus, beaucoup plus...
... et en serrant au plus près l'actualité, visitez le site

Ada Lovelace Symposium 2015 à l'Université d'Oxford
"Les 200 ans d'une Visionnaire de l'Informatique"

Toutes les vidéos des conférences sont en ligne, de quoi s'instruire et se régaler...
... comme si on y était!

Sur la Toile

Livres


Aller à notre Page Babbage

Revenir à la Home Page du Mathouriste