compilatore
Un compilatore è un programma per computer che trasforma un codice sorgente scritto in un linguaggio di programmazione in un altro linguaggio di computer. Per essere sfruttato dalla macchina, il compilatore traduce il codice sorgente, scritto in una lingua di alto livello di astrazione, facilmente comprensibile dall'uomo, in una lingua di livello inferiore, in un linguaggio di assemblaggio o linguaggio macchina. Nel caso di linguaggio semi-compilato, il codice sorgente viene tradotto in una lingua intermedia, in forma binaria, prima di essere interpretato o compilato. Al contrario, un programma che traduce una lingua a basso livello in un linguaggio di livello superiore è un decompilatore. Un compilatore esegue le seguenti operazioni: analisi lessicale, pre-elaborazione, analisi sintattica, analisi semantica, generazione di codice e ottimizzazione dei codici. Quando il programma compilato può essere eseguito su un computer il cui processore o sistema operativo è diverso da quello del compilatore, viene chiamato cross-compilation. La compilazione viene spesso seguita da un passaggio di modifica dei collegamenti, per generare un file eseguibile.