Logo ITP-NEWS
RSS | Contatti | Login|Registrati| Home
giornali
Il modello di compilazione del linguaggio C -Parte 1
Di Fusco Francesco :: 2011-03-22
Per modello di compilazione del linguaggio C intendiamo tutte le fasi attraverso cui un programma scritto in linguaggio C deve passare (e quindi anche tutti gli strumenti software che bisogna utilizzare) per poter ottenere un programma eseguibile.

Una rappresentazione grafica di tale processo la posiamo vedere dalla figura seguente:



Il Preprocessore

Il codice sorgente (il nostro programma scritto in linguaggio C) viene sottoposto alla pre-elaborazione del pre-processore

Il preprocessore accetta codice sorgente in input ed ha la funzione di:
:: rimuovere i commenti (che non devono essere tradotti)
:: interpreta speciali direttive al compilatore, denotate con il carattere #

Ad esempio:

#include -- include il contenuto di un file.

Ad esempio, in un programma possiamo avere:
#include -- la libreria matematica standard.
#include -- la libreria standard per le operazioni di Input/Output

#define -- definisce un nome simbolico o una costante. Serve anche per la sostituzione delle Macro

Ad esempio, possiamo scrivere:
#define PI_GRECO 3.14


Il compilatore C

l compilatore C traduce il codice sorgente in codice assembly. Il codice sorgente viene ricevuto dal preprocessore (quindi pre-elaborato).

L'assemblatore
L'assemblatore crea il codice oggetto. Su un sistema UNIX (ad es, Linux) possiamo vedere file con estensione .o oppure sui sistemi MSDOS file con estensione .OBJ e che indicano file di codice oggetto.

Il Link Editor
Se nel codice sorgente c'รจ un riferimento ad una funzione di una libreria o alla funzione definita in un altro file sorgente il link editor combina insieme queste funzioni (con la funzione main()) in modo da creare un file eseguibile.