Il nome di Ada Lovelace compare in quasi ogni racconto sulle origini dell'informatica. Spesso viene presentata in modo sbrigativo come «la prima programmatrice». La sua storia è più interessante di un'etichetta, e vale la pena guardare da vicino che cosa scrisse davvero nel 1843 e perché quel testo è ancora citato.
Chi era
Augusta Ada Byron nacque nel 1815, figlia del poeta Lord Byron e di Annabella Milbanke. I genitori si separarono quando lei era neonata e Ada non conobbe mai il padre. La madre, che aveva una solida preparazione matematica, volle per la figlia un'educazione rigorosa in matematica e scienze, insolita per una ragazza dell'epoca.
Nel 1833, a diciassette anni, Ada conobbe Charles Babbage durante uno dei ricevimenti londinesi in cui il matematico mostrava il frammento funzionante della sua macchina differenziale. Ne nacque un'amicizia e una corrispondenza che durò per anni. Dopo il matrimonio con William King, che divenne conte di Lovelace, il suo nome divenne Ada Lovelace.
Come nacquero le Note
Nel 1840 Babbage tenne a Torino una presentazione della sua macchina analitica. Tra il pubblico c'era un giovane ingegnere militare, Luigi Federico Menabrea, che in seguito sarebbe diventato presidente del Consiglio del Regno d'Italia. Menabrea scrisse un resoconto in francese, pubblicato nel 1842 a Ginevra.
Ada tradusse l'articolo in inglese. Su suggerimento di Babbage aggiunse una serie di note di commento, contrassegnate con le lettere da A a G. Il risultato, pubblicato nel 1843 in una raccolta di memorie scientifiche e firmato con le sole iniziali A.A.L., era molto più lungo dell'articolo originale. Le note non erano un'appendice: erano il cuore del lavoro.
Che cosa contiene la Nota G
L'ultima nota descrive in dettaglio come la macchina analitica avrebbe potuto calcolare i numeri di Bernoulli, una successione di numeri razionali che compare in molti problemi di analisi matematica. Calcolarli a mano è laborioso, quindi erano un buon banco di prova.
La Nota G non si limita a dire che la macchina potrebbe farlo. Presenta una tabella che specifica, passo per passo:
- quale operazione esegue il mulino a ogni passo;
- da quali variabili del magazzino prende gli operandi;
- in quali variabili scrive il risultato;
- come cambiano i valori delle variabili durante il calcolo.
Il procedimento contiene inoltre una ripetizione: un gruppo di operazioni viene eseguito più volte, con valori diversi. Oggi la chiameremmo un ciclo.
Perché lo chiamiamo programma
Per rendere l'idea, ecco in uno pseudocodice moderno lo schema di quel tipo di procedura, che descrive variabili, operazioni e ripetizione:
per n da 1 a N:
calcola i termini a partire dai valori precedenti
accumula il risultato in una variabile
memorizza B(n) nel magazzino
Non è il testo di Ada, che usava una notazione tabellare tutta sua, ma rende la struttura: dati in memoria, operazioni elementari in sequenza, un ciclo che riusa i risultati precedenti. È questo il motivo per cui la Nota G viene considerata il primo programma pubblicato per un computer, anche se quel computer non fu mai costruito. Nella tabella, tra l'altro, gli studiosi hanno individuato un piccolo errore, un'inversione tra due variabili: è forse anche il primo bug documentato in un programma.
L'intuizione più importante
Il passaggio più citato delle Note non riguarda però i numeri di Bernoulli. Ada osservò che la macchina analitica poteva operare non solo su numeri, ma su qualsiasi cosa i cui rapporti reciproci potessero essere espressi in simboli. Fece l'esempio della musica: se le relazioni tra suoni potessero essere formalizzate, la macchina avrebbe potuto comporre brani di qualsiasi complessità.
È un salto concettuale notevole. Significa capire che una macchina di questo tipo non è una calcolatrice molto potente, ma un manipolatore generale di simboli. È esattamente ciò che fanno i computer quando trattano testo, immagini o suoni come sequenze di numeri.
L'obiezione di Lady Lovelace
Nelle stesse Note, Ada scrisse anche che la macchina non aveva alcuna pretesa di creare qualcosa di originale: poteva fare solo ciò che le si sapeva ordinare di fare. Più di un secolo dopo, nel 1950, Alan Turing dedicò a questa frase una sezione del suo celebre articolo sull'intelligenza delle macchine, chiamandola «l'obiezione di Lady Lovelace». La discussione su che cosa significhi per una macchina essere originale è ancora aperta.
Il dibattito sul suo ruolo
Gli storici discutono da tempo su quanto delle Note sia frutto delle idee di Ada e quanto del dialogo con Babbage, che le fornì materiale e correzioni. La corrispondenza tra i due mostra una collaborazione stretta. Resta il fatto che le Note sono sue, che contengono intuizioni che non si trovano negli scritti pubblicati di Babbage e che la loro chiarezza espositiva è notevole.
Ada Lovelace morì nel 1852, a trentasei anni. Nel 1980 il Dipartimento della Difesa statunitense diede il suo nome a un linguaggio di programmazione, Ada, tuttora usato in sistemi in cui l'affidabilità è critica.
In sintesi
- Ada Lovelace tradusse nel 1843 l'articolo di Menabrea sulla macchina analitica, aggiungendo note più lunghe del testo originale.
- La Nota G descrive passo per passo, con variabili e ripetizioni, il calcolo dei numeri di Bernoulli: è considerata il primo programma pubblicato.
- Ada intuì che la macchina poteva manipolare simboli di ogni tipo, non solo numeri.
- La sua osservazione sui limiti della macchina fu discussa da Turing nel 1950 come «obiezione di Lady Lovelace».