Cos'è un compilatore, o come far capire a un computer cosa vuoi da esso?

Sommario:

Cos'è un compilatore, o come far capire a un computer cosa vuoi da esso?
Cos'è un compilatore, o come far capire a un computer cosa vuoi da esso?

Video: Cos'è un compilatore, o come far capire a un computer cosa vuoi da esso?

Video: Cos'è un compilatore, o come far capire a un computer cosa vuoi da esso?
Video: Come funziona un COMPILATORE? AFK UNDER THE HOOD 2024, Maggio
Anonim

La fase finale della creazione di un programma consiste nel tradurre un algoritmo scritto in uno dei linguaggi di programmazione (C/C++, Pascal, ecc.) in un linguaggio macchina di basso livello. Ciò è dovuto al fatto che per eseguire qualsiasi compito, i computer devono ricevere comandi in un linguaggio che comprendono, simile al binario e funzionante con strutture dati primitive (bit, byte o word). Il processo di traduzione di istruzioni specifiche del dominio di linguaggi di alto livello in codice binario è chiamato traduzione. Esistono due metodi di traduzione: compilazione e interpretazione.

il compilatore è
il compilatore è

Compiler - che cos'è?

L'analisi di molte interpretazioni dei termini "compilatore" e "compilazione" permette di evidenziare la seguente definizione. Un compilatore è un programma progettato per tradurre il testo di un algoritmo sorgente da un linguaggio di alto livello in un insieme equivalente di istruzioni in un linguaggio orientato alla macchina. Questo è il cosiddetto codice oggetto, per il successivo assemblaggio del codice oggetto risultante in un modulo di programma pronto per l'uso.

Compilatore e interprete: somiglianze e differenze

Un interprete è un'utilità checosì come un compilatore, progettato per tradurre il codice sorgente in codice macchina. Tuttavia, a differenza del compilatore, l'interprete esegue ogni volta il programma ed esegue la traduzione riga per riga.

Puoi dire che il compilatore e l'interprete sono processori di linguaggio che consentono al computer di riconoscere ed eseguire comandi dati dal programmatore.

Classificazione del compilatore

il compilatore è un programma
il compilatore è un programma

I compilatori sono classificati principalmente in base alle caratteristiche relative alle loro aree di applicazione pratica.

Vectorizing compiler è un'utilità che traduce il codice sorgente in codice oggetto ed è adattata per computer dotati di processori vettoriali.

Un compilatore flessibile è programmato in un linguaggio di alto livello in modo modulare. La sua gestione avviene tramite tabelle. È anche possibile eseguirlo utilizzando il compilatore dei compilatori.

Il compilatore incrementale è un processore di linguaggio che ritraduce frammenti separati di codice sorgente e aggiunte ad esso. Tuttavia, evita di ricompilare l'intera applicazione.

Un compilatore interpretativo (a step) è un'utilità che esegue in sequenza la compilazione indipendente di ogni istruzione o comando di un codice sorgente di alto livello.

Un compilatore di compilatori è un traduttore in grado di accettare una descrizione formale per un linguaggio di programmazione e di generare autonomamente un compilatore per qualsiasi linguaggio.

compilatore e interprete
compilatore e interprete

Il compilatore di debug ti consente di trovare e correggere alcuni tipi di errori di sintassi commessi durante la scrittura del codice sorgente

Un compilatore residente occupa una posizione permanente nella RAM ed è quindi riutilizzabile per un'ampia gamma di attività.

Il compilatore autocompilato è scritto nella stessa lingua della traduzione.

Il compilatore universale si basa su una descrizione formale dei parametri semantici e sintattici del linguaggio di input. I componenti principali di tale utilità sono i caricatori principali, sintattici e semantici.

Dispositivo compilatore

Un compilatore e un linker sono al centro di ogni compilatore. Spesso, durante la compilazione, viene utilizzato un linker esterno e il compilatore stesso esegue solo la funzione di traduzione. Succede anche che il compilatore venga implementato come una sorta di programma manager che viene associato al traduttore (o ai traduttori, se sono stati utilizzati linguaggi di programmazione diversi durante la scrittura del codice sorgente) e al linker e ne avvia l'esecuzione quando necessario.

Lingue di programmazione e metodi di traduzione

compilatore di linguaggio
compilatore di linguaggio

Nonostante il fatto che un programma scritto in qualsiasi linguaggio di programmazione possa essere sia compilato che interpretato, molti linguaggi di alto livello hanno una predisposizione all'uno o all' altro metodo di traduzione. Quindi, il linguaggio C è stato originariamente progettato per la compilazione e Java per l'interpretazione del programma scritto. Sono in fase di sviluppoI compilatori C sono abbastanza semplici, grazie al suo livello relativamente basso e al numero ridotto di elementi strutturali.

Vantaggi e svantaggi di compilatori e interpreti. Applicazioni

Si noti che le applicazioni compilate sono più veloci di quelle interpretate, ma allo stesso tempo il codice macchina ottenuto come risultato della compilazione dipende dalla piattaforma hardware. Quindi, un programma scritto e compilato per Windows non funzionerà, ad esempio, in Linux. Pertanto, nel caso di applicazioni Internet, quando è impossibile dire in anticipo in quale ambiente lavoreranno, utilizzano l'interpretazione o il bytecode (in questo caso il programma sorgente viene convertito in una forma intermedia eseguibile su vari hardware piattaforme).

Consigliato: