(1) Software che converte un insieme di istruzioni di linguaggio di alto livello in una rappresentazione di livello inferiore. Ad esempio, un compilatore della guida converte un documento di testo incorporato con comandi appropriati in un sistema di guida in linea. Un compilatore dizionario converte termini e definizioni in un sistema di ricerca dizionario.
(2) Software che traduce un programma scritto in un linguaggio di programmazione di alto livello (C / C++, COBOL, ecc.) in linguaggio macchina. Un compilatore di solito genera prima il linguaggio assembly e poi traduce il linguaggio assembly in linguaggio macchina. Un’utilità nota come” linker ” combina quindi tutti i moduli del linguaggio macchina richiesti in un programma eseguibile che può essere eseguito nel computer. Vedere ottimizzazione del compilatore.
Il seguente è un esempio concettuale di codice sorgente convertito in linguaggio assembly e codice macchina dal compilatore:

 Source Code IF COUNT=10 GOTO END-OF-JOB ELSE GOTO COMPUTE-AGAIN ENDIF Assembly Language Machine Language Compare A to B Compare 3477 2883 If equal go to C If = go to 23732 Go to D Go to 23119 Machine Code 10010101001010001010100 10101010010101001001010 10100101010001010010010

_compasm.gif

Da C a Assembly Language

Un compilatore C/C++ converte il codice C e C++ in assembly language come mostrato in questo esempio. Le frecce rosse puntano a varie chiamate di funzione e il codice assembly per eseguire tali chiamate segue ogni istruzione.

compile2.jpg

Compilatori e interpreti

I programmi compilati (a destra) vengono tradotti nel linguaggio macchina del computer di destinazione. I programmi interpretati (a sinistra e al centro) sono mantenuti nel loro codice sorgente originale o sono precompilati in una forma intermedia. In entrambi i casi, è necessario un interprete per tradurre il programma in linguaggio macchina in fase di runtime, mentre il programma compilato è “pronto per l’uso.”

Lascia un commento

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