COMPILAZIONE DI UN PROGRAMMA C

di il
1 risposte

COMPILAZIONE DI UN PROGRAMMA C

Ciao a tutti c'è un passaggio riguardo la compilazione di un programma C che mi è poco chiaro. Quando avviene la compilazione di un programma C a partire dal codice sorgente viene creato dal preprocessore "preprocessed code", successivamente interviene il compilatore dove il programma viene tradotto in linguaggio assembler("assembly code"). Dopo la fase di compilazione il programma scritto in linguaggio assembler viene tradotto in linguaggio macchina utilizzando un apposito programma detto assemblatore. Infine, il linker ha il compito di collegare tra loro i vari moduli oggetto che compongono lo stesso programma, per poi produrre un eseguibile. MA COSA SONO I MODULI OGGETTO?

1 Risposte

  • Re: COMPILAZIONE DI UN PROGRAMMA C

    Allora vedo che hai le idee un pò confuse infatti la procedura e la seguente:
    te la semplifico il più possibile visto il poco spazio a disposizione e la quantità enorme di informazioni che riguarda l'argomento!

    il compilatore prima unisce tutti i vari file esempio di file esterni sono .h
    poi inizia ad analizzare il sorgente e risolve i comandi del preprocessore.
    dopo analizza la sintassi e produce gli errori se ce ne sono.
    se fin qui va tutto bene il compilatore genera un file .obj (file oggetto che è un misto tra codice asm e metalinguaggio.
    e il linker a creare il file eseguibile creando i file .exe o .com
    la fase di traduzione tra il codice asm e il linguaggio macchina viene dalla elaborazione del linker il quale prende in input il file .obj risolve tutte le parti scritte in metalinguaggio ed unisce tutte le routine esterne.
    le parti in metalinguaggio di solito riguardano gli indirizzamenti e la tabella delle variabili + altre informazioni che non sono potute essere risolte in fase di assemblazione.
    comunque qui sotto potrai trovare maggiori informazioni sulla struttura di un compilatore.

    msdn.microsoft.com/it-it/magazine/cc136756.aspx?
    spero di non averti confuso ulteriormante le idee.
Devi accedere o registrarti per scrivere nel forum
1 risposte