Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

LLVM: la nuova era delle virtual machine

Link copiato negli appunti

Negli ultimi 10 anni, abbiamo assistito ad un imponente cambio di rotta nell´industria software e nei linguaggi di programmazione. Tale cambiamento è iniziato in maniera massiccia prima con Java e poi con il .Net framework di Microsoft e consiste nell´ormai noto sistema formato da una Virtual Machine e da un compilatore che non produce più codice nativo, bensì bytecode. Questo ha permesso all´industria di rendersi indipendente dall´hardware sottostante, così come dal sistema operativo su cui dovranno girare le applicazioni.

Tutte queste però in generale sono macchine virtuali molto complesse che elaborano un bytecode abbastanza distante dai linguaggi macchina. Questo si traduce essenzialmente in prestazioni non eccelse e in Virtual Machine molto complesse e spesso pachidermiche.

LLVM ha cercato di spingere ancora di più sull´indipendenza hardware e software delle applicazioni, in più ha introdotto una certa indipendenza dal linguaggio di programmazione base.

Nel dettaglio LLVM è una infrastruttura con Virtual Machine e compilatore, il cui obbiettivo primario è l´ottimizzazione delle prestazioni e l´indipendenza dal linguaggio di origine. LLVM utilizza un bytecode molto semplice e particolarmente ottimizzato che permette di ottenere prestazioni di assoluto rispetto.

L´obiettivo dei programmatori è stato infatti quello di spostare la complessità di progettazione dalla virtual machine al compilatore, che è colui che effettua il lavoro di ottimizzazione. Un´altra caratteristica non da poco di LLVM è l´indipendenza dal linguaggio di origine, vale a dire che si possono scrivere i programmi nei linguaggi più disparati, per poi compilarli nel bytecode di LLVM.

Attualmente il supporto ai vari linguaggi più diffusi avviene mediante l´utilizzo del codice sorgente dei compilatori open source più diffusi, quali python, Java con il suo OpenJDK e GCC per C e C++.

LLVM è da poco giunto alla sua versione 2.1 aggiungendo un supporto completo per C, Python e Java (1.5, per la 1.6 si attende lo sviluppo del progetto OpenJDK), mentre per C++ il supporto c´è ma è ancora sperimentale.

Il progetto è decisamente interessante e ambizioso, si spera che in futuro possa avere sempre maggiore successo in modo da ripulire i nostri computer dalle miriadi di macchine virtuali attualmente necessarie per l´esecuzione dei vari programmi.

Ti consigliamo anche