Cos'è un file oggetto?
Un file oggetto è un file di computer generato da un programma chiamato compilatore e contiene dati e istruzioni. I compilatori traducono il codice sorgente del linguaggio di programmazione in un modulo leggibile da macchina intermedio noto come codice oggetto. Programmi più piccoli potrebbero essere compilati in un singolo file di oggetti, mentre i programmi più grandi vengono in genere compilati in diversi file di funzione correlata. Questi singoli file di oggetti sono uniti da un linker e le informazioni specifiche del sistema operativo vengono aggiunte per formare un programma eseguibile.
Nella pratica comune, un file oggetto è indicato da un'estensione del file ".obj". Tuttavia, ci sono diversi formati per questi file. I più comuni sono il formato Modulo Object (OMF) Intel® Relocatable (OMF) e il formato del file di oggetti comune (COFF) di Windows & Reg e Unix® System V. In molti sistemi INIX®, il formato eseguibile e collegabile (ELF) è arrivato a sostituire Coff.
Indipendentemente dal formato, un file oggetto in genere contiene tre tipi di informazioniCiò gli consente di interagire con altri moduli di programma. Le procedure e i dati aperti al riferimento esterno vengono assegnati nomi da cui possono essere chiamati da altri moduli. Allo stesso modo, i riferimenti alle informazioni al di fuori del modulo sono annotati ma non assegnati un nome. Quando i file sono collegati, ai riferimenti senza nome verrà assegnato il nome dato loro nel modulo in cui sono stati originariamente definiti. I nomi locali vengono utilizzati per istruzioni e dati citati esclusivamente all'interno di un modulo.
Non tutto il codice collegabile viene archiviato come file di oggetti. Le librerie sono raccolte di routine precompilate che vengono archiviate come codice oggetto. Sono prodotti più o meno allo stesso modo dei file di oggetti e sono utili per archiviare le procedure frequentemente chiamate. Quando un linker non trova un riferimento all'interno di altri file di oggetti, lo cercherà automaticamente in un file di libreria. La maggior parte delle implementazioni di un linguaggio di programmazioneVieni con una libreria standard di funzioni.
Per mezzo del collegamento dinamico, un file oggetto può essere utilizzato contemporaneamente da più programmi di esecuzione. Invece di vincolare il codice oggetto a un programma quando è collegato, viene recuperato quando il programma viene caricato o in fase di esecuzione quando viene referenziata una procedura. Nell'ambiente Windows®, questi sono noti come librerie di collegamenti dinamici e sono indicati da un'estensione ".dll". I sistemi simili a UNIX® spesso definiscono questo tipo di file un oggetto condiviso dinamico (DSO). Questo tipo di file di oggetti può anche essere implementato per l'uso con un particolare programma e farebbe parte dell'installazione di quel programma.