Gli Stati Uniti avranno anche tanti difetti, ma un pregio dobbiamo riconoscerglielo: sanno
valorizzare e sostenere le idee. Questa è la storia di un’idea.
Siamo nel 2000, all’università dell’Illinois si sta per laureare Chris Lattner un giovane che
nei suoi studi si è interessato principalmente di sistemi operativi e di compilatori. Ma la sua
tesi di laurea verterà su un’idea alla quale sta lavorando già da un po’.
Tutto nasce da una serie di considerazioni che Chris ha incominciato a fare durante il corso di
teoria dei compilatori e soprattutto sui compilatori per il linguaggio C/C++. Analizzando molto
da vicino questi compilatori (e soprattutto gcc) Chris era arrivato alla conclusione che questi
compilatori si basavano su tecniche di generazione del codice vecchie di decenni. La
generazione del codice non era “Just In Time” e non esistevano ottimizzazioni cross-file. E
si era accorto che questi compilatori diventavano sempre più lenti ad ogni nuova release.
Perché quindi non scrivere un compilatore che avesse le caratteristiche che i compilatori
all’epoca non avevano? Perché non attingere dalla letteratura tecnica le idee migliori e
metterle assieme in un moderno compilatore che produca codice estremamente
ottimizzato e sia molto veloce?
Quindi Chris inizia a lavorare su questa idea. E a questa idea ci lavora dal 2000, anno
della tesi, fino al 2005, anno in cui inizia a pubblicare i primi risultati della sua ricerca. Gli
articoli pubblicati da Chris parlano di LLVM (Low Level Virtual Machine), il nome che lui ha
dato a questo sistema universale di compilazione. Manca ancora un passo. Il front-end.
Inizialmente Chris ha utilizzato il front-end di gcc (llvm-gcc), ma già nel 2005 ha iniziato a
lavorare ad un sostituto per questo front-end che in ogni caso reintroduceva quelle
limitazioni sistemiche proprie di gcc.
E qui viene il bello.
Nel frattempo un altro attore della nostra storia, un grande colosso dell’informatica si era
reso conto delle limitazioni di gcc. Stiamo parlando della Apple. Apple utilizzava gcc per il
suo ambiente di sviluppo e per la compilazione di tutte le applicazioni e del sistema
operativo. E proprio nel periodo in cui Chris Lattner pubblicava i suoi risultati la Apple si
stava guardando attorno per trovare una valida alternativa a gcc. Gli sviluppatori Apple
provando l’LLVM si sono ritrovati con la soluzione a portata di mano. Lattner è stato subito
convocato a Cupertino per un seminario su LLVM e sulle innovazioni che questa
tecnologia introduceva nel mondo dei compilatori.
Il mese dopo questo seminario, Lattner è stato assunto da Apple e oggi è il capo del team
che si occupa dell’architettura software dei compilatori del dipartimento ricerca e sviluppo.
Qui ha visto la luce il nuovo front-end per LLVM, chiamato Clang. L’unione di Clang con
LLVM fornisce quindi un compilatore innovativo, veloce e che produce codice
estremamente ottimizzato per i86, i86-64, PowerPC e ARM.
Tutto quello che vediamo oggi funzionare su macchine Apple è stato compilato con LLVM.
Io ora sto scrivendo con un word processor compilato con LLVM e tutte le “App” che ci
sono su iPhone e iPad (sistema operativo compreso) sono state compilate con LLVM.
Questa è la storia di Chris Lattner e di come una sua idea (quando era ancora studente)
abbia cambiato il modo di vedere la compilazione.
Ora una domanda.
Che fine avrebbe fatto Chris Lattner e la sua idea se si fosse laureato in Italia e in Italia
avesse pubblicato i suoi risultati?
Non c’è bisogno che mi rispondiate...
Luca Ciciriello

Nessun commento:
Posta un commento