Differenza tra programmi Compilatori e Interpreti

L’esecuzione di un codice sorgente (il programma realizzato con un linguaggio ad alto livello, ovvero il linguaggio di programmazione) deve essere effettuato, a secondo della scelta, con: il compilatore o l’interprete.

Prima di proseguire ricordiamo che sia il compilatore che l’interprete necessitano di un editor o meglio ancora di un IDE, un’ambiente di sviluppo specifico.

Il compilatore

Il compilatore cambia in base all’architettura interna del computer, Prima di eseguire il programma, il compilatore, deve necessariamente convertire il codice sorgente (alto livello, linguaggio di programmazione) in codice oggetto (basso livello, linguaggio macchina).

Pertanto la compilazione di un programma consiste nella sua conversione da codice sorgente in codice oggetto. Tuttavia prima di eseguire tale operazione il compilatore verifica la correttezza delle informazioni inserite, tramite le seguenti analisi: lessicale nella quale si controllano l’esattezza delle parole chiave (ad esempio il nome di una variabile non può iniziare con un numero o contenere spazi o ancora errori di battitura While anziché Wile); sintattica ovvero il corretto posizionamento logico delle parole chiave e delle istruzioni fornite; semantica si riferisce al significato vero e proprio delle istruzioni.

Tra i linguaggi che fanno usano dei compilatori ci sono: C++ e Basic

Esiste anche il fenomeno inverso, la decompilazione, che viene appunto effettuata tramite un programma definito decompilatore.

L’interprete

L’interprete è un programma in grado di eseguire direttamente il codice sorgente – di un linguaggio definito ad alto livello – senza effettuare ulteriori operazioni preliminari.

Anche in questo caso l’interprete effettuerà le stesse operazioni di debugg, viste per il compilatore, quali: analisi lessicale, sintattica e semantica con la differenza che è possibile interrompere il programma e non attendere il completamento. L’interprete consuma maggiore memoria e risulta più lento nella fase iniziale per poi recuperare successivamente dovendo effettuare meno processi.

I linguaggi del web, girando su macchine virtuali, sono eseguiti tramite programmi interpreti. Troviamo: PHP, Java, Perl, ASP ecc.

Lascia un commento

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