Augusta Ada King, contessa di Lovelace |
Il padre di Augusta Ada
King, che la gente definiva «pazzo e cattivo» per i suoi
atteggiamenti stravaganti, è più noto come Lord Byron, il grande
poeta. Ada ereditò da lui la facilità di parola e il gusto per la
vita: era una donna molto bella e facile alle avventure, che aveva
confidenza con l'élite inglese e che morì a soli 36 anni, la
stessa età a cui scomparve il padre. E, come per Byron, anche la
fama di Ada è legata ai suoi scritti.
Nel 1843 pubblicò una
serie di note in cui si descriveva la macchina analitica di Charles
Babbage, il primo dispositivo automatico per il calcolo che sia mai
stato progettato. Benché la macchina analitica non sia stata
effettivamente costruita - soprattutto perché Babbage non riuscì
mai a raccogliere i fondi sufficienti - le note di Ada comprendevano
un programma per farle calcolare una serie di numeri detti di
Bernoulli (si veda la finestra a pagina 94).
Quest'opera assegnò ad
Ada un posto importante nel campo dell'informatica, ma la sua vita
affascinante e il suo lignaggio - oltre al suo ruolo di pioniera in
un campo in cui le donne sono sempre state poco rappresentate –
l'hanno in seguito trasformata in un vero e proprio simbolo. Oltre a
numerose biografie, ha ispirato opere teatrali e romanzi alla penna
di scrittori quali Tom Stoppard e Arthur C. Clarke. E se molte donne
hanno contribuito al progresso dell'informatica, solo Ada ha dato il
nome a un linguaggio per computer, ampiamente usato in applicazioni
militari e aerospaziali.
Non sorprende che i
contributi di Ada all'informatica siano stati di volta in volta
enfatizzati o sminuiti, e l'importanza reale del suo lavoro è
oggetto di controversie tra gli storici del settore. Molti, per
esempio, sostengono erroneamente che Ada sia stata la prima
programmatrice di computer. (Babbage, non Ada, scrisse i primi
programmi per la macchina analitica, che pure rimasero in gran parte
inediti.) Altri, invece, mettono impropriamente in dubbio
l'attribuzione ad Ada del programma incluso nelle note, e persino
delle note stesse. Come spesso avviene, la verità sta nel mezzo.
Babbage parlava di Ada come della sua «interprete», dando in questo
modo la migliore definizione della sua opera. Certamente egli
discusse le note con lei e rivide le prime bozze, ma non c'è dubbio
che Ada stessa ne sia stata l'autrice. E se è vero che il lavoro di
Babbage costituiva lo stimolo e il fondamento del pensiero di Ada e
dei suoi scritti, questi ultimi gettavano una luce nuova sul
significato e sulle grandi potenzialità della macchina analitica.
Una giovane
matematica
Augusta Ada Byron nacque
il 10 dicembre 1815 a Londra; era figlia di Lord Byron e della
matematica Annabella Milbanke, da lui sposata 11 mesi prima. Al tempo
della nascita di Ada, il matrimonio tra Annabella e Byron era già in
crisi. Circolava la voce, probabilmente a opera di Caroline Lamb,
cugina di Annabella, che Byron avesse avuto una relazione con la
sorellastra; questo fornì il pretesto per la separazione.
Byron lasciò
l'Inghilterra nell'aprile del 1816 e non rivide mai più sua figlia.
Lady Byron diede ad Ada un'educazione da matematica e scienziata e,
forse per allontanarla dal padre, scoraggiò le sue velleità
letterarie. Ada ricevette un'istruzione eccellente: in matematica era
seguita da Mary Somerville, un'eminente scienziata nota soprattutto
per aver tradotto i lavori del matematico e fisico francese
Pierre-Simon de Laplace, e dal logico e matematico Augustus De
Morgan.
L'educazione matematica
di Ada era inconsueta all'epoca, anche per un nobile. A differenza di
quanto avveniva nell'Europa continentale, in Inghilterra nella prima
metà dell'Ottocento la matematica era in declino. Ai tempi della
giovinezza di Ada, De Morgan, George Peacock e il loro collega e
amico CharleS' Babbage si prodigavano per ridare smalto alla
matematica inglese, ma l'istruzione matematica dei giovani, e
soprattutto delle ragazze, rimaneva molto modesta.
Nondimeno, sotto la guida
di De Morgan, Ada divenne esperta nei princìpi dell'algebra, della
logica e del calcolo.
Ada estese in seguito
queste intuizioni. Il 5 giugno 1833, all'età di 17 anni, Ada
incontrò a un ricevimento Babbage, vedovo quarantunenne celebre per
il suo attivismo politico e le sue idee oltranziste non meno che per
i suoi lavori in matematica ed economia. Poche settimane dopo
quell'incontro Babbage mostrò ad Ada la sua macchina alle
differenze, ancora incompiuta Lei rimase affascinata e per molti
anni seguì da vicino lo sviluppo di quella macchina, leggendo i
pochi articoli pubblicati in proposito e discutendone con Babbage.
Questi aveva progettato
la macchina alle differenze come strumento per generare tavole
numeriche, automatizzando i passi «meccanici» del calcolo. Pur
funzionando bene, il dispositivo aveva limiti di calcolo: riusciva a
eseguire solo la somma e la sottrazione e a risolvere una successione
di equazioni polinomiali (come O a + bx + cx2 + dx3...). Babbage,
però, aveva già iniziato a pensare a qualcosa di più ambizioso.
Mentre la loro amicizia si approfondiva, egli cominciò a descrivere
ad Ada una nuova macchina che stava progettando, molto più avanzata
della macchina alle differenze: la chiamava macchina analitica, e
trascorse i restanti 38 anni della sua vita a rifinire i progetti per
la sua costruzione.
Il lavoro con
Babbage
Stando ai disegni di
Babbage, la macchina analitica non avrebbe avuto le limitazioni della
macchina alle differenze. Ideata per risolvere problemi generali di
calcolo, aveva un'architettura sorprendentemente simile a quella dei
moderni calcolatori, costituita da un «magazzino» (la memoria), un
«mulino» (l'unità di elaborazione, o CPU) e un lettore di schede
perforate (dispositivo di input). Babbage intendeva affidarsi a
schede perforate per programmare i dati in ingresso (un'idea tratta
dal telaio Jacquard, che usando schede di quel tipo produceva
automaticamente tessuti con disegni a più colori). L'output della
macchina doveva essere una pagina stampata oppure schede perforate.
La macchina analitica avrebbe eseguito addizioni, sottrazioni,
moltiplicazioni e divisioni;
sarebbe inoltre stata in
grado di eseguire o ripetere un insieme di istruzioni basate su certe
condizioni («se x, allora y»): un concetto fondamentale della
moderna informatica denominato
ramificazione
condizionale.
Nel 1840, Babbage fece la
sua prima e unica presentazione pubblica della macchina analitica a
un gruppo di matematici e ingegneri a Torino. Nel pubblico c'era un
giovane matematico, Luigi Federico Menabrea (che in seguito sarebbe
diventato Primo ministro), il quale prese appunti e, con alcune note
aggiuntive di Babbage, pubblicò in Francia un articolo intitolato
Breve presentazione della macchina analitica. Menabrea
concentrò l'attenzione soprattutto sulle basi matematiche della
macchina alle differenze e di quella analitica anziché sul loro
funzionamento meccanico. Delineò la funzione dei vari componenti
della macchina analitica e riconobbe che essa sarebbe stata in grado
di calcolare qualsiasi formula algebrica espressa in modo adeguato
(ossia programmata) sulle schede perforate. «Le schede» scriveva
Menabrea «sono semplici trascrizioni di formule algebriche, ovvero,
per dirla meglio, una forma particolare di notazione analitica.»
Ada - che nel frattempo
aveva sposato William King, conte di Lovelace - lesse l'articolo di
Menabrea e iniziò a tradurlo in inglese. Babbage era rimasto buon
amico di Ada e, venendo a sapere del suo lavoro all'inizio del 1843,
la incoraggiò ad aggiungere le sue note alla traduzione. Con questo
suggerimento iniziò una solida collaborazione che portò alla
pubblicazione, da parte di Ada, di un articolo in cui per la prima
volta si trattava approfonditamente della programmazione di un
computer; per un secolo sarebbe rimasta l'unica pubblicazione del
genere. Conteneva in tutto sette note (da A a G), che riunite danno
un testo di lunghezza più che doppia rispetto all'articolo originale
di Menabrea. Un tema importante era il significato della possibilità
di programmare la macchina analitica con schede perforate di tipo
Jacquard. «La caratteristica distintiva della macchina analitica»
scriveva Ada «... è l'introduzione del principio ideato da Jacquard
per realizzare, attraverso schede perforate, i disegni più complessi
nella fabbricazione di stoffe broccate... Possiamo effettivamente
dire che la macchina analitica tesse disegni algebrici proprio come
il telaio Jacquard tesse fiori e foglie.»
Le schede erano una
soluzione particolarmente ingegnosa per la tessitura – o per il
calcolo - in quanto consentivano di generare automaticamente
qualsiasi disegno - o equazione - si volesse. Ada proseguiva con
un'ampia elaborazione delle descrizioni di Menabrea e un dettagliato
esame della programmazione della macchina analitica. Per esempio,
sottolineava l'importanza, dal punto di vista del calcolo, della
capacità della macchina di passare a istruzioni differenti in base a
determinate condizioni, e tracciava la distinzione tra ciò che era
teoricamente possibile calcolare e ciò che era irrealizzabile nella
pratica. Trattava anche dei vantaggi derivanti dalla capacità della
macchina analitica di riutilizzare le istruzioni. Inoltre,
descrivendo la potenza di elaborazione simbolica che la macchina
possedeva, accennava alla sua capacità di comporre musica:
«Supponendo, per esempio, che le relazioni fondamentali tra i suoni
intonati della scienza dell'armonia e della composizione musicale si
possano esprimere e adattare in questo modo, la macchina potrebbe
comporre elaborati e scientifici brani musicali di qualsiasi
complessità e durata».
Infine Ada ridimensionava
l'idea che la macchina fosse «pensante» al modo degli esseri umani.
«La macchina analitica non ha alcuna pretesa di originare qualcosa»
affermava. «Può fare qualsiasi cosa noi sappiamo come ordinarle di
eseguire.» Un secolo dopo, in una fondamentale conferenza
sull'intelligenza artificiale, Alan M. Turing rese famosa
quell'affermazione definendola «l'obiezione di Lady Lovelace».
Le restanti note di Ada
erano dedicate agli aspetti pratici della programmazione della
macchina analitica, inclusa una descrizione del meccanismo delle
schede perforate e della notazione adottata per la scrittura dei
programmi. Se le schede perforate, come aveva proposto Menabrea nel
suo articolo e come Ada aveva riaffermato, esprimevano semplicemente
una formula algebrica, allora era necessaria una notazione rigorosa
per esprimere la formula sulle schede perforate. Babbage aveva
adottato un formato tabulare per esprimere programmi, formato che Ada
modificò nella sua pubblicazione.
Le note terminano con un
programma per calcolare i numeri di Bernoulli. Il matematico svizzero
Jakob Bernoulli introdusse questi numeri in un classico della teoria
della probabilità, Ars conjectandi (L'arte della congettura),
edito nel 1713. Il programma di Ada per derivare i numeri di
Bernoulli dimostrava la capacità di ramificazione condizionale della
macchina analitica e utilizzava due cicli. Era di gran lunga più
ambizioso e complesso di qualsiasi programma scritto da Babbage per
la macchina.
Tutte le notizie storiche
sul lavoro di Ada vengono dalla corrispondenza tra lei e Babbage,
dagli appunti e dall'autobiografia di Babbage, e dalle stesse note di
Ada, pubblicate nel volume Scientific Memoirs di Richard
Taylor. Delle lettere che ci sono rimaste, la maggior parte sono di
Ada. Purtroppo, sono andati perduti i suoi appunti, che avrebbero
potuto chiarire il percorso concettuale seguito dalla studiosa.
Charles Babbage e
il lavoro di Ada
Ada compilò le sue note
tra il febbraio e il settembre del 1843 e durante questo periodo ebbe
frequenti discussioni in proposito con Babbage, sia attraverso
lettere sia in incontri diretti. Anche se si affidava a lui per
spiegare il funzionamento della macchina e per confermare l'esattezza
delle sue descrizioni, spesso stupiva Babbage con il suo acume. Dopo
la lettura di una bozza della Nota A, per esempio, Babbage replicò:
«Sono molto riluttante a restituirvi la vostra ammirevole e
filosofica Nota A. Vi prego di non modificarla... Era impossibile che
voi arrivaste a tutto questo solo per intuizione, e più leggo le
vostre note, più queste mi sorprendono, e più rimpiango di non aver
esplorato prima una vena così ricca del più nobile dei metalli».
Ada ricercava l'opinione
di Babbage ed era aperta ai suggerimenti; si opponeva, però, a ogni
cambiamento nei suoi scritti. Nell'agosto 1843, un mese prima della
consegna al tipografo delle bozze finali, Babbage cercò di inserire
nelle note di Ada una prefazione in cui lamentava la mancanza di
sostegno del Governo britannico alla sua macchina analitica. Ada si
infuriò e gli inviò una lettera risentita. Quando le loro
divergenze furono infine appianate, la prefazione di Babbage venne
pubblicata separatamente e anonima.
In una lettera a Babbage
del luglio 1843, Ada scriveva: «Voglio inserire qualcosa sui numeri
di Bernoulli in una delle mie note, per esemplificare come la
macchina sia in grado di calcolare una formula implicita senza che un
essere umano ci abbia messo prima la testa e le mani. Inviatemi i
dati e le formule che mi servono». (Ada aveva studiato i numeri di
Bernoulli due anni prima con De Morgan, ma evidentemente aveva
bisogno di richiamare alla memoria la formula per generarli.)
Da questa lettera si
ricavano con chiarezza due cose: primo, che l'idea di inserire un
programma per calcolare i numeri di Bernoulli era di Ada; secondo,
che Babbage fornì le formule per calcolare i numeri di Bernoulli, un
fatto confermato 21 anni dopo nella sua autobiografia, Passages
from the Life of a Philosopher.
Non possiamo sapere con
certezza fino a che punto Babbage aiutò Ada a proposito dei numeri
di Bernoulli. Lei era certamente in grado di scrivere il programma da
sola, una volta ottenuta la formula giusta; ciò risulta chiaramente
dalla sua profonda comprensione del processo di programmazione e dai
suoi interventi migliorativi sulla notazione di Babbage. Inoltre, la
corrispondenza di quel periodo sembra indicare che i contributi di
Babbage erano limitati alla formula matematica e che Ada creò il
programma da sola. Mentre si impegnava su di esso, Ada scrisse a
Babbage: «Ho lavorato senza posa, e con successo, tutto il giorno.
Apprezzerete moltissimo la Tavola e il Diagramma. Sono stati stesi
con estrema attenzione, e tutti gli indici sono stati curati in modo
minuzioso e scrupoloso».
Non si può che
sottolineare l'importanza della scelta fatta da Ada di scrivere
questo programma. Nel 1836 e 1837 Babbage aveva scritto nei suoi
taccuini molti piccoli programmi per la macchina analitica, ma
nessuno si avvicinava alla complessità del programma per i numeri di
Bernoulli. Data l'istruzione ricevuta, come minimo Ada aveva una
certa familiarità con le proprietà dei numeri. Forse si rese conto
che un programma per i numeri di Bernoulli avrebbe costituito
un'ottima dimostrazione di alcune delle caratteristiche chiave della
macchina analitica, come la ramificazione condizionale. Inoltre, dato
che Menabrea alludeva ai numeri di Bernoulli nel suo articolo, il
programma di Ada si collegava alla traduzione che ella ne aveva
fatto.
Per finire, un esame del
lavoro di Ada non sarebbe completo se non si menzionasse Dorothy
Stein, dell'Università di Londra, forse la più esplicita tra le
voci critiche, che scrisse Ada: A Life and a Legacy nel 1985.
Secondo la Stein, Ada era incompetente come matematica, e non sarebbe
stata in grado di scrivere da sola il programma per i numeri di
Bernoulli, un'opinione ripresa in seguito da altri. La conclusione
della Stein si basa soprattutto su due fatti. Innanzitutto, ella
mette in evidenza un errore matematico nella traduzione dal francese
dell'articolo di Menabrea, là dove un refuso veniva trasformato in
un enunciato matematicamente impossibile. L'articolo originale di
Menabrea diceva «le cos de n” che avrebbe dovuto leggersi come «le
cas de n». La traduzione corretta avrebbe dovuto essere « nel caso
di n» ma Ada tradusse l'enunciato in «quando cos n» che è
appunto matematicamente impossibile. In secondo luogo, la Stein cita
alcune lettere tra Ada e i suoi maestri che mostrano come ella avesse
difficoltà con la tecnica della sostituzione di funzioni (dimostrare
un'equazione sostituendo una funzione con una sua equivalente).
Scrive la Stein: «La fatica con cui afferrava i concetti matematici
sarebbe difficilmente addebitabile a chi riuscì a guadagnarsi una
fama contemporanea e postuma di talento matematico, se non fosse così
chiaramente testimoniata». In effetti, Ada tradusse in modo erroneo
uno degli enunciati di Menabrea, ma non è corretto attribuire
l'errore a incompetenza matematica. Non si trattava dell'unico errore
nel suo articolo; Ada arrivò persino, nella nota finale, a scrivere
in modo errato le proprie iniziali come «A.L.L.» invece di
«A.A.L.». Le sue 65 pagine di traduzione le annotazioni vennero
riviste da Babbage e da altri, i quali pure non si avvidero degli
errori.
L'accusa della Stein a
proposito dell'incomprensione della sostituzione di funzioni è tanto
più grave, in quanto si tratta di un concetto vitale per i
programmatori di computer. È fondamentale ricordare, tuttavia, che a
quel tempo in Inghilterra l'algebra era poco praticata e che Ada
stava studiando per corrispondenza. Sapendo che i suoi maestri
l'avrebbero aiutata con piacere, è probabile che ella scrivesse loro
sugli argomenti che non riusciva a capire piuttosto che sui concetti
già afferrati. Il livello di raffinatezza matematica delle sue
ultime lettere dimostra che, se aveva avuto difficoltà con la sostituzione di
funzioni prima di iniziare a lavorare alle sue note, le aveva
certamente superate quando cominciò a scrivere le note stesse.
La salute di Ada, che era
sempre stata piuttosto fragile, declinò ulteriormente dopo il 1843,
limitando le sue possibilità di praticare la matematica. Morì il 27
novembre 1852, probabilmente per un cancro dell'utero. Su sua
richiesta, venne sepolta accanto al padre. Il suo lavoro rimase
relativamente poco noto fino al 1953, quando Bertram V. Bowden
scrisse Faster than Thought, una storia dei calcolatori in cui
citava l'opera di Ada e la definiva «profetica».
Molti moderni pionieri
dell'informatica arrivarono a conoscere il lavoro di Babbage e lo
scritto di Ada, ma ciascuno di essi fece progressi in modo
indipendente. Howard Aiken, il professore di Harvard che progettò e
costruì nel 1944 il Mark I, amava considerarsi un diretto successore
di Babbage; non aveva familiarità con il lavoro di Ada, tuttavia, e
non riuscì a cogliere l'importanza della ramificazione condizionale.
Le nostre attuali conoscenze sulla progettazione e la programmazione
dei computer non si possono far risalire direttamente a Babbage e
Ada, ma per molti di questi concetti li si può considerare
precursori. Ada, in particolare, è una figura che, con la sua vita e
il suo lavoro, stimola ancora l'immaginazione di molti studiosi di
informatica contemporanei.
Eugene Eric Kim e
Betty Alexandra Toole, gli autori di questo articolo, avevano cominciato a interessarsi ad Ada Lovelace
lavorando alle loro tesi di laurea. Kim, laureato in storia della
scienza alla Harvard University, lavorava nella redazione del «Dr.
Dobb's Journal» di San Mateo, in California. Toole, è laureata
all'Università della California a Berkeley e specializzata
in storia della scienza, era professore associato di scienza dei
calcolatori al Dominican College di San Rafael, in California. Qualcosa sugli sviluppi delle loro carriere è reperibile in rete. (S.L.L.)
“LE SCIENZE” n. 381/
maggio 2000
Nessun commento:
Posta un commento