Skip to main content

Cos'è un linguaggio intermedio?

Nella programmazione del computer, quando il codice sorgente leggibile dall'uomo viene analizzato da un compilatore, il compilatore spesso traduce i comandi di origine in una sequenza di istruzioni che non sono abbastanza codice macchina nativo ma può essere ulteriormente elaborato, ottimizzato o compilato dal compilatore o in altriStrumenti software.I file prodotti contengono istruzioni che si dice siano in un linguaggio intermedio, perché il linguaggio utilizzato dal compilatore non è né significativo per il sistema operativo più ampio né il linguaggio utilizzato dal programmatore per scrivere il codice in primo luogo, ma inveceè una lingua che funge da ponte tra la scrittura e l'esecuzione del programma.A volte viene utilizzato un linguaggio intermedio per consentire a un compilatore di effettuare ottimizzazioni molto precise in modo che il programma funziona in modo più efficiente, ma può anche essere utilizzato per produrre file di output portatili tra sistemi diversi e incompatibili.La sintassi effettiva del linguaggio può assomigliare al codice macchina o ad altri tipi di bytecode leggibili non umani, oppure il linguaggio può essere solo un linguaggio di programmazione del computer multipiattaforma esistente.

Se utilizzato per l'ottimizzazione del compilatore, un compilatore di linguaggio accetta ogni istruzione inun file di codice sorgente e rompe il comando nella lingua intermedia.Una singola dichiarazione di programmazione leggibile dall'uomo può rompersi in dozzine di istruzioni per il linguaggio della macchina, quindi il linguaggio intermedio crea un livello di astrazione che il compilatore può utilizzare per identificare le aree del codice in cui le ottimizzazioni possono essere effettuate senza prima dover vincere il codiceEventuali implementazioni o biblioteche native.Una volta completato, il file di codice intermedio può quindi essere compilato ulteriormente per creare un file binario nativo, oppure può essere eseguito attraverso un altro programma, noto come interprete, che eseguirà il codice compilandolo nelle istruzioni native secondo necessità.

Lingue, come Java , usa un linguaggio intermedio per creare file compilati ottimizzati ma anche portatili per altri sistemi informatici.Questo tipo di codice a volte è noto come bytecode e assomiglia al codice macchina o al linguaggio dell'assemblaggio.Bytecode è archiviato nei file in modo indipendente dalla piattaforma, il che significa che può essere trasferito a qualsiasi sistema informatico o dispositivo in grado di eseguire un interprete.Una volta che il bytecode è su un sistema, può essere eseguito come programma interpretato o può essere compilato per eseguire in modo nativo sul sistema target.

In alcuni casi, un linguaggio del computer è progettato per rendere facile programmare verso uno specificoFine, come un'applicazione Web interattiva, ma i progettisti non vogliono includere compilatori, interpreti o plug-in personalizzati per sistemi diversi.In questi casi, il linguaggio intermedio del compilatore può essere un linguaggio esistente che ha già stabilito interpreti multipiattaforma.Il linguaggio intermedio risultante in questo caso è leggibile dall'uomo.Un esempio di un linguaggio di programmazione di computer che viene anche usato come linguaggio intermedio è JavaScript , che ha il vantaggio di essere in grado di eseguire in quasi tutti i browser Web su qualsiasi piattaforma, a partire dal 2011.