Skip to: site menu | section menu | main content

L'interpretazione

Per cercare di eliminare il problema della portabilità, si è tentato di creare altri linguaggi che si potessero basare soltanto su librerie compilate (componenti) ad hoc per ogni piattaforma, mentre il loro codice viene interpretato, e quindi non c'è la necessità di una compilazione su ogni tipologia di macchina su cui viene eseguito. Il grosso difetto di questi linguaggi è la lentezza e le dimensioni maggiori degli eseguibili; però hanno il grosso pregio di permettere di usare lo stesso programma senza modifica su più piattaforme. Si dice in questo caso che il programma è portabile. La perdita di prestazioni che è alla base dei linguaggi interpretati è il doppio lavoro che è affidato alla macchina che si accinge ad elaborare tale programma. Al contrario di un programma compilato, infatti, ogni istruzione viene controllata e reinterpretata ad ogni esecuzione da un interprete, quand'anche questo fosse più volte la stessa. I linguaggi compilati sono usati quindi per tutti quei software che hanno necessità di prestazioni, accesso a determinate caratteristiche hardware o ridotte dimensioni degli eseguibili. Si usano linguaggi interpretati nella fase di messa a punto di un programma per non dover effettuare numerose nuove compilazioni o invece quando si vuole creare software che svolgono operazioni non critiche che non necessitano di ottimizzazioni riguardanti velocità o dimensioni, ma che traggono più vantaggio dalla portabilità. I linguaggi di scripting e tutti quelli orientati al Web sono quasi sempre interpretati. PHP, Perl, Tcl/Tk, Java volendo, e JavaScript, Python e molti altri sono esempi concreti di interazione non vincolata alla piattaforma. Ci sono vari tentativi per rendere i compilatori multipiattaforma creando un livello intermedio, una sorta di semi-interpretazione, come nel caso sopra menzionato di Java; d'altro canto per i linguaggi interpretati ci sono tentativi per generare delle compilazioni (o semi-compilazioni) automatiche specifiche per la macchina su cui sono eseguiti. Esistono anche strumenti per automatizzare per quanto possibile la compilazione di uno stesso programma su diverse piattaforme, ad esempio GNU autoconf/automake, che permette di realizzare una distribuzione del codice sorgente che può essere configurata e compilata automaticamente su diverse piattaforme, in genere almeno tutti gli Unix.

Linguaggi compilati e linguaggi interpretati

Back to top