Nel 1951 non c’erano i linguaggi di programmazione come li conosciamo oggi: erano pensati dagli informatici teorici ma non ancora realizzati in pratica. Sui mainframe si usava linguaggio macchina e l’idea stessa di un compilatore era una astrazione che faceva venire i brividi ai puristi della primissima generazione di computer scientist, nata prima della guerra.
La tesi di dottorato di Corrado Böhm era la definizione di un linguaggio di programmazione e di un compilatore per tradurre il software creato seguendo le sue regole in codice binario. Anche il compilatore era scritto in quel linguaggio (era un compilatore metacircolare) che, mai realizzato praticamente, anticipa di quattro anni il Fortran e di dieci anni il LISP) e anticipa anche il primo computer realizzato in Italia, cioè la Calcolatrice Elettronica Pisana, che è di pochi anni dopo e che soprattutto non prevedeva un linguaggio di alto livello per poter essere programmata.
Böhm è nato a Milano il 17 gennaio del 1923: tra pochi mesi avrebbe compiuto 95 anni. Era un ingegnere elettronico diplomato nel 1946 presso l’École Polytechnique Fédérale di Losanna: una pratica comune per i giovani del Nord Italia durante la guerra. Qui come matematico entra in contatto con il lavoro di un tedesco poco conosciuto ma fondamentale per la storia dell’informatica, Konrad Zuse e la sua macchina Z4. Ne studia e ne valuta il lavoro, venendo influenzato in maniera determinante. Tanto che il percorso iniziato mentre i fuochi della guerra si spegnevano rimane il fil rouge della sua ricerca.
Nel prosieguo Böhm cerca di legare la matematica all’informatica: il suo dottorato di ricerca alla Scuola politecnica federale di Zurigo (ETH) è considerato da uno dei più importanti informatici e storici dell’informatica di sempre, cioè D.E. Knuth, studia e costruisce astrattamente come abbiamo detto una macchina per il calcolo, il suo linguaggio di programmazione e il compilatore metacircolare, cioè il software capace di tradurre i programmi scritti in quel linguaggio in linguaggio macchina. Knuth osserva che, non solo Böhm aveva raggiunto risultati mai toccati da nessuno prima, ma che il suo linguaggio era interessante di per sé perché “every statement (including input statements, output statements and control statements) was a special case of an assignment statement”.
Dopo il dottorato il giovane ricercatore passa poi al CNR dove studia, sino al 1968, la macchina di Turing e i linguaggi di programmazione in generale, passa poi a Pisa (1959–1969) e quindi a Torino, dove organizza l’istituto di Scienze dell’Informazione, il secondo in Italia dopo quello di Pisa. È l’epoca dei pionieri, a Milano Gianni Degli Antoni pochi anni dopo avrebbe dato vita ai dipartimenti di informatica dell’Università Statale (solo da pochi anni condensati in una sola struttura) mentre al Politecnico di Milano e di Torino si costruivano altre scuole di informatica.
Per Böhm gli anni Cinquanta sono stati comunque molto produttivi. Ancora in Svizzera lavora a brevetti per una macchina capace di valutare in maniera automatica dei simboli, compresi gli strumenti di input e output. Come membro del CNR viene incaricato di valutare le prestazioni del computer italo-britannico Ferranti FINAC (Ferranti-Istituto Nazionale Applicazioni Calcolo) che viene realizzato dalla ditta fondata nell’Ottocento da un italiano a Manchester. Il ricercatore porta avanti anche altri importanti lavori sia per il sistema di interpretazione-integrazione nella gestione dei vettori (INTINT) che applicazioni per il calcolo differenziale e integrale e le sue applicazioni numeriche.
Sempre negli anni Cinquanta, come riporta la sua biografia in rete, Böhm si sposa con la signora Eva Romanin Jacur (nel 1950), pittrice padovana di talento, e nascono i figli: Michele (1955 computer artist), Emanuele (1958, studioso di oceanografia) e Ariela (1960, scultrice).
A partire dagli anni sessanta a Roma Böhm approfondisce la sua vocazione di informatico teorico, lavorando con molti dei suoi allievi a studi di alto livello. Uno in particolare è passato alla storia più generale, perchè tocca un elemento dei linguaggi di programmazione che fa parte del “pacchetto” di conoscenze culturali di chi ha scoperto l’informatica negli anni Settanta con linguaggi come il Basic. Si tratta di un teorema, cioè una dimostrazione matematica di informatica teorica, che prende il nome dai suoi autori: “teorema di Böhm-Jacopini” (Giuseppe Jacopini, purtroppo scomparso prima del suo maestro, era stato allievo di Böhm assieme a Giorgio Ausiello, Daniel Bovet, Alfonso Miola e Marisa Venturni Zilli, nomi storici dell’informatica italiana del dopoguerra).
Il teorema stabilisce che è possibile scrivere qualsiasi programma senza utilizzare l’istruzione GO-TO- Si tratta di un colpo agli immaginari di due generazioni di programmatori fai-da-te perché il Go-to è l’istruzione per il salto, tecnicamente una istruzione di controllo del flusso di esecuzione. Permette di “saltare” (andare a, cioè “Go to”) a una determinata riga del codice e non prevede una chiusura. Ma è anche considerata una pessima pratica di programmazione perché genera lo “spaghetti-code”, genera cioè quella massa di cicli nidificati uno dentro l’altro che trasformano il codice sorgente in una massa incomprensibile e difficilmente manutenibile. Il teorema dimostra come sia possibile, magari definendo altre variabili e ricorrendo a costrutti logici ulteriori, programmare qualsiasi cosa anche senza il Go-To (in altri linguaggi di più basso livello del basic indicato con le istruzioni BRA (da “branch”), JP, JMP o JUMP).
Un esempio di wikipedia dell’uso del Go-to
10 LET i = 1
20 PRINT i
30 LET i = i + 1
40 IF i < 10 THEN GOTO 20
Negli anni sessanta Böhm è uno dei primi a studiare il lambda-calcolo, cioè il sistema formale creato dal matematico Alonzo Church che è l’altra parrocchia alla base dell’informatica assieme al lavoro di Alan Turing. Nel 1968 Böhm firma un altro teorema, questa volta da solo e purtroppo meno famoso ma non meno importante, che definisce alcuni aspetti fondamentali del lambda-calcolo sia per quanto riguarda i risultati che il modo con il quale viene raggiunta la prova, che poi diede origine a quelli che sono defini i Böhm-trees.
A Torino, con pochissimi mezzi ma con grande energia e giovani collaboratori, Böhm segna un’altra pagina della storia dell’informatica italiana non solo dal punto di vista del lavoro di ricerca e dell’attività di “rete” internazionale (Böhm è il fondatore di alcune delle associazioni più prestigiose della computer science mondiale) ma anche per la creazione del dipartimento e della scuola di computer science di Torino.
Nel 1974 Böhm torna a Roma, dove era stato per brevi periodi prima di Torino, e lavora ancora di più sia per ricerca di informatica teorica soprattutto nell’ambito del lambda-calcolo e non solo che in altre aree. Tra il 1980 e il 2000 Böhm pubblica i due terzi dei suoi lavori di ricerca, per dare una idea della profondità della sua attività scientifica “matura”.
Nel 2001 Böhm riceve EATCS Award, il premio europeo più importante alla carriera degli informatici. Nel tempo ha continuato a portare avanti una vita di ricerca e di passione per la scienza in generale, dall’antropologia alla biologia, senza mai perdere però il suo appassionato talento per la computer science. Tra i suoi allievi quello diventato più “importante” è sicuramente Silvio Micali, che ha vinto il Turing Award nel 2013, unico italiano sinora ad aver raggiunto quello che è definito il premio Nobel dell’informatica.
Una considerazione e una nota finale. La considerazione è che uomoni come Corrado Böhm sono i giganti sulle cui spalle l’informatica non solo italiana ha potuto costruire tutto quello che conosciamo oggi. Sono spalle teoriche, le più importanti e le meno conosciute e celebrate. Proprio per questo da non dimenticare.
La nota invece è sulla home page di Böhm da cui abbiamo tratto le informazioni biografiche: in un angolino in basso ad ogni pagina fa capolino una vecchia scritta che gli utenti di macOS X di un po’ di tempo fa ricorderanno: “Made on a Mac” che vuol dire che il professore e la sua famiglia usavano il buon vecchio iWeb, parte della suite iLife, e il Macintosh come strumento di lavoro e per la casa. Un cerchio che si chiude.