3° Anno TEORIA 6. Compilatori ed interpreti

5. Compilatori ed Interpreti Versione 1.1 – Marzo 2009 5. COMPILATORI ED INTERPRETI Sono entrambi programmi in grado di tradurre le istruzioni di un programma scritto in un linguaggio di programmazione ad alto livello detto programma sorgente, in istruzioni comprensibili al computer ossia in istruzioni di un programma scritto in linguaggio macchina detto programma oggetto (sequenze di ‘0’ ed ‘1’ comprensibili per l’elaboratore). Sono in pratica dei programmi traduttori ma sono profondamente diversi nel funzionamento perché:  I compilatori sono programmi che accettano in input un intero programma scritto in linguaggio ad alto livello (programma sorgente) e lo traducono interamente in un programma scritto in linguaggio macchina (programma oggetto);  Gli interpreti sono programmi che accettano in input le singole istruzioni di un programma scritto in linguaggio ad alto livello e le traducono una alla volta in singole istruzioni in linguaggio macchina. Schema delle fasi di compilazione di un programma sorgente Input di fase 1 Algoritmo in pseudocodice e/o flow-chart Fase 1 di editing correzione errori sintattici Output di fase1: Programma sorgente Fase 2 di compilazione correzione errori di link correzione di errori di run-time e logici correzione errori logici Programma compilatore o “compiler” è il programma che traduce il programma sorgente compiendo l’analisi lessicale, sintattica e semantica Programma di link o ‘linker’ è il programma che collega il programma oggetto con altri moduli oggetto già compilati del sistema operativo o built-in d el linguaggio stesso (per chiamate a funz ioni e/o utilizzo di variabili e costanti di sistema o del linguaggio di programmazione stesso) Output di fase 2: Programma oggetto o .OBJ Fase 3 di linking Output di fase 3: Programma eseguibile o .EXE Fase 4 di esecuzione Output di fase 4: Programma eseguibile Fase 5 di test Output di fase 5: Programma definitivo corretto Programma eseguibile o .EXE è il programma oggetto completo dei moduli di sistema o built-in invocati Autore: Rio Chierego (email: [email protected] - sito web: www.riochierego.it) Pag. 1