Il codice oggetto è un tipo di codice computer compilato generato da un compilatore e solitamente eseguito su una macchina specifica, al contrario del codice sorgente, che è leggibile in un linguaggio di programmazione come C++ o Java. Si differenzia anche dal codice eseguibile, che è un programma a cui sono state collegate le librerie necessarie ed è pronto per essere eseguito sulla macchina desiderata.
Il codice oggetto viene generato dall'output del compilatore e solitamente è scritto in linguaggio binario o assembly. Poiché il codice oggetto è già stato tradotto in linguaggio macchina, può essere eseguito rapidamente e con un sovraccarico minimo. Tuttavia, viene utilizzato principalmente come linguaggio intermedio tra il linguaggio assembly e il linguaggio macchina.
Il codice oggetto può essere utilizzato per vari scopi, come il debug dei programmi, la loro ottimizzazione prima dell'esecuzione e l'interconnessione di componenti di sistemi software di grandi dimensioni. È anche comunemente utilizzato da molti programmi utente e sistemi operativi.
Il codice oggetto è importante anche nel reverse engineering, poiché aiuta gli ingegneri del software a scoprire di più sul programma su cui stanno lavorando. Analizzando il codice oggetto, gli ingegneri possono determinare come funziona il programma e come è stato costruito. Inoltre, il codice oggetto può essere confrontato con il codice sorgente iniziale per individuare errori o problemi.
Sebbene il codice oggetto sia altamente versatile, non è considerato leggibile dall'uomo e quindi non fornisce molta comprensione su come funziona il programma. Viene utilizzato principalmente come mezzo per trasportare programmi da una macchina all'altra, nonché per trasferire dati da un formato all'altro.