Estratto del documento

Stesso problema, diverse soluzioni

Lo stesso problema può essere risolto in modi diversi; algoritmi diversi possono infatti essere soluzioni equivalenti di uno stesso problema, cioè calcolare la stessa funzione.

Algoritmi equivalenti

Algoritmi equivalenti possono essere diversi perché:

  • Adottano soluzioni concettuali diverse;
  • Sono scritti in linguaggi differenti;
  • Magari sono destinati a esecutori differenti.

Esecutore ed algoritmi

Per scrivere una soluzione nella forma definitiva è necessario sapere chi la eseguirà. L’esecutore di riferimento per il nostro studio è ovviamente il calcolatore elettronico. Un calcolatore reale è in grado di comprendere solo soluzioni codificate nel proprio linguaggio, cioè in linguaggio macchina. Il linguaggio macchina non è di uso pratico, né di facile comprensione. E dunque vi sono due opportunità:

  1. Visto che l’esecutore finale è una macchina reale M, si può scrivere la soluzione nel suo linguaggio LM.
  2. Si può adoperare un linguaggio L più “amichevole”, un linguaggio di programmazione ad alto livello:
  • Si scrive l’algoritmo nel linguaggio L;
  • Si traduce (per mezzo di un compilatore) la soluzione codificata nel linguaggio L in un’altra (ad essa equivalente) codificata nel linguaggio LM della macchina;
  • Oppure si esegue l’algoritmo per mezzo di un intermediario (detto interprete) che opera sulla macchina M senza necessità di traduzioni.

Compilatori e interpreti

Compilatore

L e LI sono linguaggi di programmazione. Un compilatore è un traduttore che trasforma algoritmi scritti nel linguaggio L in algoritmi equivalenti scritti nel linguaggio LI. Un compilatore è un programma che può essere eseguito da una certa macchina M e che esegue la trasformazione prescritta; il linguaggio LI è spesso il linguaggio macchina di M, ma non è obbligatorio!

Interprete

L è un linguaggio di programmazione, M una macchina. Un interprete del linguaggio L è un esecutore, cioè un programma per la macchina M, in grado di eseguire (senza tradurli) programmi scritti nel linguaggio L. In pratica, un interprete è un programma che simula il comportamento di una macchina diversa (astratta o concreta che sia).

Situazioni ibride

Un programma scritto nel linguaggio L (codice sorgente) può essere compilato nel linguaggio LI e il risultato (codice intermedio) eseguito dall’interprete VL (detto anche macchina virtuale). Un esempio è Java, che traduce il codice sorgente in un linguaggio per macchine virtuali.

Anteprima
Vedrai una selezione di 1 pagina su 4
3 Macchine compilatori e interpreti Pag. 1
1 su 4
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher ivyB di informazioni apprese con la frequenza delle lezioni di Programmazione e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Verona o del prof Solitro Ugo.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community