Quali sono e differenza tra fasi e passaggi del compilatore

Quali sono e differenza tra fasi e passaggi del compilatore

In informatica, la principale differenza tra fasi e passaggi del compilatore (Phases and Passes of Compiler) è che le fasi sono i passaggi nel processo di compilazione mentre i passaggi sono il numero di volte in cui il compilatore attraversa il codice sorgente.

I programmatori scrivono programmi per computer in linguaggi di alto livello. Queste lingue seguono una sintassi simile alla lingua inglese. È più facile per i programmatori capire questo linguaggio, ma il computer non lo capisce. Pertanto, è necessario convertire il codice sorgente in codice macchina comprensibile dalla macchina. Un compilatore è un software speciale che supporta questa conversione. Fase e passaggio sono due termini correlati ai compilatori.

Fasi del compilatore

C’è una sequenza di passaggi nel processo di compilazione. Ogni fase prende l’input dalla fase precedente. L’output di una fase passa alla fase successiva.

  • In primo luogo, il codice sorgente passa attraverso l’analisi lessicale. Analizza il codice sorgente come un flusso di caratteri e li converte in lessemi significativi. Quindi, rappresenta questi lessemi sotto forma di gettoni.
  • La seconda fase è l’ analisi della sintassi o il parsing. Prende come input i token generati dall’analisi lessicale e crea un albero di analisi. Controlla anche le disposizioni dei token con la grammatica del codice sorgente.
  • La terza fase è l’ analisi semantica. Controlla se l’albero di analisi segue le regole del linguaggio di programmazione.
  • La quarta fase è il generatore di codice intermedio. Inoltre, questa fase genera un codice intermedio del codice sorgente per la macchina di destinazione. È più facile convertire questo codice in codice macchina di destinazione.
  • La quinta fase è la fase di ottimizzazione del codice , che elimina le righe di codice irrilevanti e organizza la sequenza di istruzioni per velocizzare l’esecuzione del programma senza spreco di risorse (CPU, memoria).
  • La fase finale è la generazione del codice. Il generatore di codice converte il codice intermedio in una sequenza di codice macchina riposizionabile.

Inoltre, è presente un albero dei simboli che viene mantenuto durante tutte le fasi. Contiene tutti i nomi degli identificatori con i loro tipi. Inoltre, aiuta a cercare e recuperare rapidamente i record degli identificatori.

Passaggi del compilatore

Un passaggio si riferisce al numero di volte in cui il compilatore passa attraverso il codice sorgente. Ci sono compilatori single-pass e compilatori multi-pass. Il compilatore a passaggio singolo esegue il programma solo una volta. In altre parole, il compilatore single pass consente al codice sorgente di passare attraverso ciascuna unità di compilazione solo una volta. Traduce immediatamente ogni sezione di codice nel codice macchina finale.

Il compilatore multi-pass passa attraverso il codice sorgente più volte. In altre parole, consente al codice sorgente di passare più volte attraverso ciascuna unità di compilazione. Ogni passaggio prende il risultato del passaggio precedente come input e crea output intermedi. Pertanto, il codice migliora a ogni passaggio. Il codice finale viene generato dopo il passaggio finale. I compilatori multi-pass eseguono attività aggiuntive come la generazione di codice intermedio, l’ottimizzazione del codice dipendente dalla macchina e l’ottimizzazione del codice indipendente dalla macchina.

Quali sono e differenza tra fasi e passaggi del compilatore

Differenza tra fasi e passaggi del compilatore

Definizione

Le fasi si riferiscono a unità o passaggi nel processo di compilazione. I passaggi, al contrario, si riferiscono al numero totale di volte in cui il compilatore passa attraverso il codice sorgente prima di convertirlo nel codice macchina di destinazione. Quindi, questa è la principale differenza tra fasi e passaggi del compilatore.

Quantità e categorie

Ci sono sei fasi principali nel processo di compilazione mentre ci sono due tipi di compilatori come compilatori a passaggio singolo e multi-passaggio. Quindi, questa è un’altra differenza tra fasi e passaggi del compilatore.

Conclusioni

Un compilatore è un software speciale che supporta questa conversione. La principale differenza tra fasi e passaggi del compilatore è che le fasi sono i passaggi nel processo di compilazione mentre i passaggi sono il numero di volte in cui il compilatore attraversa il codice sorgente.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

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