Cos'è un linguaggio intermedio?
Nella programmazione di 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 da altri strumenti software. I file prodotti contengono istruzioni che si dice siano in un linguaggio intermedio, poiché 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 un linguaggio 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 non umani RBytecode Eadable, oppure il linguaggio può essere solo un linguaggio di programmazione del computer multipiattaforma esistente.
Se utilizzato per l'ottimizzazione del compilatore, un compilatore linguistico prende ciascuna istruzione in un file di codice sorgente e rompe il comando nel linguaggio intermedio. 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 codice a eventuali implementazioni native o librerie. 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à.
Alcune lingue, come Java®, usano un intermedioIl linguaggio dato 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 di destinazione.
In alcuni casi, un linguaggio del computer è progettato per facilitare il programma verso un fine specifico, come un'applicazione Web interattiva, ma i progettisti non desiderano includere compilatori personalizzati, interpreti o plug-in 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 programma di computerNG Lingua che viene anche utilizzato 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.