Barbara Liskov

Barbara Liskov: La prima architetta dell'astrazione dei dati

Nel 1968, Barbara Liskov è diventata una delle prime donne negli Stati Uniti a ottenere un dottorato in un dipartimento di informatica. Quattro decenni dopo, il rettore del MIT ha dichiarato al mondo che ogni volta che qualcuno controllava un saldo bancario online o eseguiva una ricerca, stava "sfruttando lo slancio della sua ricerca". Tra quei due momenti ha costruito l'impalcatura concettuale — l'astrazione dei dati, i tipi di dati astratti, una regola formale per stabilire quando un tipo può sostituirne un altro in sicurezza — che funziona silenziosamente sotto quasi ogni linguaggio di programmazione scritto da allora.

Un inizio improbabile nell'informatica

Barbara Jane Huberman è nata il 7 novembre 1939 a Los Angeles, la maggiore di quattro figli. Si è laureata in matematica con una specializzazione in fisica presso l'UC Berkeley, diplomandosi nel 1961 come una delle sole due donne della sua classe a studiare matematica. Invece di intraprendere un facile percorso verso una carriera tecnica in un momento in cui quasi nessuna esisteva per le donne, ha accettato un lavoro come programmatrice presso la Mitre Corporation prima che Stanford la accettasse in un nascente programma di informatica. La sua tesi di dottorato del 1968 ha affrontato la programmazione dei finali di scacchi e ha prodotto l'"euristica killer", una tecnica di potatura della ricerca ancora discussa nell'intelligenza artificiale. Il suo relatore di dottorato è stato John McCarthy, uno dei fondatori dell'IA come campo. È riconosciuta come la prima donna negli Stati Uniti a ricevere un dottorato da un dipartimento di informatica.

CLU e l'idea di astrazione dei dati

Liskov è entrata al MIT nel 1972 per guidare quello che divenne il Programming Methodology Group, ed è stato lì, a metà degli anni '70, che ha progettato CLU. All'epoca, la maggior parte dei programmatori organizzava il software in modo procedurale, scrivendo sequenze di istruzioni che manipolavano direttamente le strutture dati e lasciavano le due cose ovunque intrecciate. CLU ha introdotto i "cluster" — moduli autonomi che raggruppavano un tipo di dato insieme alle sole operazioni consentite per toccarlo, nascondendo la rappresentazione interna interamente dal resto di un programma. Questa era l'astrazione dei dati, ed è difficile sopravvalutare quanto abbia rimodellato l'ingegneria del software: le strutture di classe al centro di Java, C++, C# e Ada tracciano tutte la loro discendenza dai cluster di CLU. Liskov ha costruito il linguaggio essenzialmente come un argomento, realizzato in codice funzionante, secondo cui grandi sistemi software potevano essere costruiti in modo affidabile solo se divisi in piccoli pezzi verificabili indipendentemente con interfacce pulite.

IL TEST GRATUITO
Quanto fa il tuo?

Venti domande, otto minuti di orologio e un percentile misurato su tutti quelli che l’hanno fatto. Senza registrazione.

Fai il test del QI →

Argus, la tolleranza ai guasti bizantini e i sistemi distribuiti

Liskov non si è fermata ai programmi su singola macchina. Negli anni '80 ha guidato lo sviluppo di Argus, il primo linguaggio di programmazione di alto livello creato specificamente per supportare il calcolo distribuito — programmi che vengono eseguiti correttamente anche quando suddivisi su più macchine che comunicano su una rete, un'idea ora fondamentale per ogni servizio cloud e applicazione web. Successivamente si è rivolta a un problema ancora più difficile: come un sistema distribuito continui a funzionare correttamente anche quando alcune delle sue macchine componenti falliscono arbitrariamente o si comportano in modo dannoso, uno scenario che gli informatici chiamano "guasto bizantino". Le tecniche pratiche che lei e i suoi studenti hanno sviluppato per la tolleranza ai guasti bizantini sono ora incorporate nell'infrastruttura che mantiene affidabili i servizi Internet su larga scala e, in seguito, sostengono alcuni protocolli di consenso blockchain.

Il principio che porta il suo nome

In un discorso programmatico del 1987, Liskov ha articolato quello che sarebbe diventato noto come principio di sostituzione di Liskov, formalizzato in seguito con Jeannette Wing: se un programma è scritto per utilizzare oggetti di un dato tipo, dovrebbe essere in grado di utilizzare oggetti di qualsiasi sottotipo di quel tipo senza che la correttezza del programma venga meno. Suona quasi autoevidente se dichiarato chiaramente, il che è esattamente il motivo per cui è importante: trasforma una vaga intuizione secondo cui "le sottoclassi dovrebbero comportarsi come la loro classe genitore" in un criterio rigoroso e verificabile per una corretta progettazione orientata agli oggetti. Il principio è diventato uno dei cinque pilastri "SOLID" insegnati a quasi ogni studente di ingegneria del software, un raro caso di nome di un ricercatore individuale che entra nel vocabolario di lavoro di un'intera industria.

Premio Turing e riconoscimento

Nel 2008 l'Association for Computing Machinery ha conferito a Liskov il premio A.M. Turing, la più alta onorificenza informatica, "per i contributi ai fondamenti pratici e teorici del linguaggio di programmazione e della progettazione dei sistemi, specialmente in relazione all'astrazione dei dati, alla tolleranza ai guasti e al calcolo distribuito". È stata solo la seconda donna a vincerlo. La presidente del MIT all'epoca, Susan Hockfield, ha definito i suoi contributi "un ideale del MIT: ricerca rivoluzionaria con profondi benefici", mentre il tributo del rettore L. Rafael Reif è stato più concreto: "Ogni volta che scambi e-mail, controlli il tuo estratto conto online o esegui una ricerca su Google, stai sfruttando lo slancio della sua ricerca". Aveva già ricevuto la medaglia IEEE John von Neumann nel 2004; la National Inventors Hall of Fame l'ha introdotta nel 2012, e ha poi ricevuto la medaglia Benjamin Franklin nel 2023. Rimane professoressa dell'Istituto MIT, la più alta distinzione universitaria, assegnata nel 2008.

Perché Barbara è chiamata un genio

Il caso del genio di Liskov è un caso sull'astrazione stessa: la specifica abilità intellettuale di trovare il limite giusto da tracciare all'interno di un sistema complicato in modo che ogni pezzo possa essere compreso, e di cui ci si possa fidare, da solo. I cluster di CLU e il principio di sostituzione che porta il suo nome non sono invenzioni appariscenti; sono risposte precise a un problema che la maggior parte dei programmatori negli anni '70 non aveva ancora imparato a dichiarare chiaramente, il che è parte del motivo per cui il suo nome si è legato permanentemente alla soluzione in un campo che raramente accredita gli individui in questo modo. Il linguaggio del comitato del premio Turing — "fondamenti pratici e teorici" — segnala esattamente questo: non un singolo artefatto, ma un modo di pensare alla correttezza che si è generalizzato attraverso linguaggi e decenni. Il controargomento onesto è che Liskov ha lavorato all'interno di una tradizione di ricerca già orientata verso la modularità e i tipi astratti — Tony Hoare, Niklaus Wirth e altri stavano perseguendo idee correlate contemporaneamente — e CLU stesso non è mai diventato un linguaggio di produzione ampiamente utilizzato; la sua influenza è arrivata di seconda mano, attraverso i linguaggi successivi che hanno adottato i suoi concetti. Il suo genio, secondo le prove, era meno invenzione pura che chiarezza non comune: ottenere l'astrazione esattamente corretta prima di chiunque altro.

Eredità

Le idee di Liskov ora si trovano invisibilmente sotto il software che gestisce telefoni, banche e motori di ricerca, e il suo nome sopravvive come scorciatoia — "questo viola la sostituzione di Liskov?" — all'interno delle revisioni del codice condotte da ingegneri che potrebbero non aver mai letto i suoi articoli. Pochi ricercatori raggiungono quella particolare, poco appariscente forma di immortalità: essere piegati così completamente nel buon senso di un campo che le persone smettono di ricordare che c'era mai un nome attaccato.

Confronta con i grandi

Johann Sebastian Bach vs John LockeKurt G Del vs Pierre De FermatGottfried Wilhelm Leibniz vs Wolfgang Amadeus MozartAlan Turing vs Confucius
Vedi Classifica →Tutti i confronti →

Bambini prodigio

Erik DemaineErik DemaineEntered university at twelve and became MIT's youngest-ever…Tanishq AbrahamThree Associate Degrees by 11 — Med School at 14, MD-Candidate…Leia ZhuLeia ZhuMade her solo debut before 2,000 people at age four and the BBC…Cleopatra StratanCleopatra StratanYoungest Person to Score a #1 Hit and Earn Professional Singer…
Bambini prodigio →

Gioca e torna domani

Sfida del genio del giorno · Word riddle
Forward I am heavy, but backward I am not. What word am I?
Tocca la tua risposta ↓
Quale genio sei? Test del QI gratuito