compilatore

Un compilatore è un programma speciale che elabora le istruzioni scritte in un particolare linguaggio di programmazione e le trasforma in linguaggio macchina o “codice” utilizzato dal processore di un computer. In genere, un programmatore scrive istruzioni linguistiche in un linguaggio come Pascal o C una riga alla volta utilizzando un editor. Il file che viene creato contiene quelle che vengono chiamate istruzioni di origine. Il programmatore esegue quindi il compilatore del linguaggio appropriato, specificando il nome del file che contiene le istruzioni di origine.

Durante l’esecuzione (esecuzione), il compilatore prima analizza (o analizza) tutte le istruzioni del linguaggio sintatticamente una dopo l’altra e poi, in una o più fasi successive o “passaggi”, costruisce il codice di output, assicurandosi che le istruzioni che si riferiscono ad altre istruzioni siano riferite correttamente nel codice finale. Tradizionalmente, l’output della compilazione è stato chiamato codice oggetto o talvolta un modulo oggetto . (Si noti che il termine “oggetto” qui non è correlato alla programmazione orientata agli oggetti.) Il codice oggetto è codice macchina che il processore può eseguire un’istruzione alla volta.

Il linguaggio di programmazione Java, un linguaggio utilizzato nella programmazione orientata agli oggetti, ha introdotto la possibilità di compilare l’output (chiamato bytecode ) che può essere eseguito su qualsiasi piattaforma di sistema informatico per cui viene fornita una macchina virtuale Java o un interprete bytecode per convertire il bytecode in istruzioni che possono essere eseguite dal processore hardware effettivo. Utilizzando questa macchina virtuale, il bytecode può facoltativamente essere ricompilato sulla piattaforma di esecuzione da un compilatore just-in-time. (Vedi anche: Compilatore Java)

Tradizionalmente in alcuni sistemi operativi, era necessario un ulteriore passaggio dopo la compilazione, quello di risolvere la posizione relativa di istruzioni e dati quando più di un modulo oggetto doveva essere eseguito contemporaneamente e si riferivano reciprocamente alle sequenze di istruzioni o ai dati. Questo processo è stato talvolta chiamato linkage editing e l’output noto come un modulo di carico.

Un compilatore funziona con quelli che a volte vengono chiamati linguaggi 3GL e di livello superiore. Un assembler lavora su programmi scritti usando il linguaggio assembler di un processore.

Related Posts

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *