Concetti Chiave

  • Il processo di compilazione trasforma il linguaggio sorgente in un file oggetto tramite un compilatore, generando file con estensione .obj o .o.
  • Il linker opera collegando diversi moduli e risolvendo i riferimenti, creando un file eseguibile con estensione .exe.
  • Il caricamento del programma in memoria permette la traduzione dei riferimenti in indirizzi fisici, rendendo il programma pronto per l'esecuzione.
  • Un traduttore può essere un compilatore per linguaggi ad alto livello o un assemblatore per linguaggi assembly, con diversi rapporti tra istruzioni sorgente e istruzioni macchina.
  • Nel caso del compilatore, il rapporto è 1:N, mentre per l'assemblatore è 1:1, poiché l'assembly rappresenta direttamente il linguaggio di macchina.

Processo di compilazione

Nel caso in cui si debba tradurre un programma da linguaggio ad alto livello fino ad ottenere un programma eseguito sul calcolatore.

Prima di tutto di usa il file in linguaggio sorgente e si compila utilizzando il compilatore che trasforma il file in un file in linguaggio oggetto, con estensione .obj oppure .o. In seguito questo file si passa al linker che collega i diversi moduli e risolve tutti i riferimenti tra i diversi moduli che compongono il programma. Perciò si ottiene un file in linguaggio eseguibile, ovvero un file che ha come estensione .exe. Infine il linker carica il programma in memoria e trasforma i riferimenti scritti nelle istruzioni in indirizzi fisici che si riferiscono a celle di memoria. E così si arriva al programma in esecuzione.

Funzione del traduttore

Nel caso in cui un elaboratore utilizzi un traduttore significa che quest’ultimo è sia:

- Un compilatore con linguaggio ad alto livello, trasforma le istruzioni sorgente a istruzioni macchine, il cui rapporto tra istruzione sorgente e istruzione macchina è 1:N, o uno a molti

- Un assemblatore (assembler) quando il linguaggio sorgente è linguaggio assembly, il cui rapporto tra istruzione sorgente e istruzione macchina è 1:1, o uno a uno, poiché assembly è una rappresentazione simbolica del linguaggio di macchina


Domande da interrogazione

  1. Qual è il processo di compilazione di un programma da linguaggio ad alto livello?
  2. Il processo inizia con la compilazione del file sorgente tramite un compilatore, che genera un file in linguaggio oggetto (.obj o .o). Questo file viene poi passato al linker, che collega i moduli e risolve i riferimenti, producendo un file eseguibile (.exe) che viene caricato in memoria per l'esecuzione.

  3. Qual è la funzione di un traduttore in un elaboratore?
  4. Un traduttore può essere un compilatore, che trasforma istruzioni sorgente in istruzioni macchina con un rapporto 1:N, oppure un assemblatore, che converte il linguaggio assembly in istruzioni macchina con un rapporto 1:1, poiché l'assembly è una rappresentazione simbolica del linguaggio di macchina.

  5. Quali sono le estensioni dei file generati durante il processo di compilazione?
  6. Durante il processo di compilazione, si generano file con estensioni .obj o .o per il linguaggio oggetto e .exe per il file eseguibile finale, come descritto nel testo.

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community