8.4.14

Ada. La figlia di Byron e le origini del computer (E. E. Kim e B. A. Toole)

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