ambiente

Che cos'è un compilatore o Come far capire a un computer cosa vuoi da esso?

Sommario:

Che cos'è un compilatore o Come far capire a un computer cosa vuoi da esso?
Che cos'è un compilatore o Come far capire a un computer cosa vuoi da esso?
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 i computer devono eseguire comandi in una lingua che comprendono che è vicina al binario e che opera con strutture di dati primitive (bit, byte o parola) per eseguire un'attività. Il processo di traduzione in codice binario di operatori di lingue di alto livello orientati ai problemi si chiama traduzione. Esistono due metodi di traduzione: compilazione e interpretazione.

Image

Compilatore: che cos'è?

Un'analisi delle molte interpretazioni dei termini "compilatore" e "compilazione" ci consente di individuare la seguente definizione. Un compilatore è un programma progettato per tradurre il testo di un algoritmo originale 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 ed interprete - somiglianze e differenze

L'interprete è un'utilità, oltre che un compilatore, progettata per tradurre il codice sorgente in codice macchina. Tuttavia, a differenza del compilatore, l'interprete viene avviato ogni volta con il programma ed esegue la traduzione riga per riga.

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

Classificazione del compilatore

Image

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

Un compilatore vettoriale è un'utilità che traduce il codice sorgente in codice oggetto ed è adattato per computer dotati di processori vettoriali.

Il compilatore flessibile è programmato in un linguaggio di alto livello in modo modulare. La sua gestione viene effettuata tramite tabelle. È anche possibile eseguirlo usando il compilatore del compilatore.

Un compilatore incrementale è un elaboratore di linguaggio che traduce nuovamente singoli frammenti del codice sorgente e aggiunte ad esso. Tuttavia, elimina la ricompilazione dell'intera applicazione.

Un compilatore interprete (passo-passo) è un'utilità che compila in modo indipendente in modo indipendente ogni istruzione o comando dal codice di alto livello di origine.

Un compilatore di compilatore è un compilatore in grado di percepire una descrizione formale per un linguaggio di programmazione e generare in modo indipendente un compilatore per qualsiasi linguaggio.

Image

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

Il compilatore residente occupa un posto permanente nella RAM e, pertanto, è disponibile per il riutilizzo da una vasta gamma di attività.

Il compilatore autocompilante è scritto nella stessa lingua da cui viene eseguita la 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 del kernel, sintattici e semantici.

Dispositivo di compilazione

Al centro di ogni compilatore ci sono il traduttore e il linker. Spesso, durante la compilazione, viene utilizzato un linker esterno e il compilatore stesso esegue solo la funzione di traduzione. Succede anche che il compilatore sia implementato come una specie di programma manager associato al traduttore (o ai traduttori, se sono stati usati linguaggi di programmazione diversi durante la scrittura del codice sorgente) e il linker e avviandoli se necessario.

Linguaggi di programmazione e metodi di traduzione

Image

Nonostante il fatto che un programma scritto in qualsiasi linguaggio di programmazione possa essere compilato o interpretato, molti linguaggi di alto livello sono predisposti all'uno o all'altro metodo di traduzione. Quindi, il linguaggio C è stato originariamente progettato per la compilazione e Java - per l'interpretazione di un programma scritto. I compilatori C sono sviluppati abbastanza facilmente, grazie al suo livello relativamente basso e ad un piccolo numero di elementi strutturali.