GNAT e LLVM: un nuovo compilatore alternativo per Ada a GCC

LLVM-Dragon
LLVM-Dragon

Ada è un linguaggio ad alto livello nato alla fine degli anni ’70 per il DoD (Department of Defense – Dipartimento della Difesa) americano. Date le sue caratteristiche di sicurezza e la flessibilità di uso, non è mai stato del tutto abbandonato, ma è rimasto confinato ad applicazioni in campo militare e/o aerospaziale.

Nei primi anni ’90 l’USAF (United States Air Force, Forza Aerea statunitense) commissionò un compilatore all’università di New York. Stranamente per allora – e anche per oggi – tra i requisiti c’era l’essere open-source.
Ne nacque GNAT, un compilatore per Ada distribuito con licenza GPL incluso dal 2001 in GCCGNU Compiler Collection, la collezione per compilazione di GNU -, ossia ciò che viene usato per compilare Linux.

Da tempo in Linux sta prendendo piede una nuova infrastruttura per la compilazione alternativa a GCC, ossia LLVM (Low Level Virtual Machine, macchina virtuale di basso livello). Come GCC, anche LLVM è un progetto modulare, capace di gestire un particolare linguaggio in ingresso grazie ad un frontend ad hoc – come GNAT per Ada.

Il primo ottobre AdaCore, l’azienda che attualmente sviluppa GNAT, ha annunciato il progetto GNAT LLVM per la realizzazione di un frontend di LLVM per Ada. In realtà si tratta di un componente che si piazza tra GNAT ed LLVM, e non di una sostituzione di GNAT stesso, ma il risultato è identico: rendere LLVM un compilatore ufficiale per Ada, con un componente scritto in Ada, e sempre sotto GPL.

I sorgenti sono, come ormai accade sempre, su GitHub. C’è qualcuno che sviluppa in Ada e vuole fare una prova?

Ho coltivato la mia passione per l'informatica fin da bambino, coi primi programmi BASIC. In età adulta mi sono avvicinato a Linux ed alla programmazione C, per poi interessarmi di reti. Infine, il mio hobby è diventato anche il mio lavoro.
Per me il modo migliore di imparare è fare, e per questo devo utilizzare le tecnologie che ritengo interessanti; a questo scopo, il mondo opensource offre gli strumenti perfetti.

Tags: , , ,