Il Common Object File Format (COFF) è un formato di file utilizzato per codice oggetto, eseguibili e librerie condivise in vari sistemi operativi, in particolare sistemi Unix-like e Windows. Serve come contenitore per codice macchina, informazioni di debugging, dati di rilocazione e tabelle dei simboli. I file COFF sono tipicamente generati da compilatori e assembler come file intermedi durante il processo di build del software. Questi file oggetto vengono poi collegati (linked) da un linker per creare un eseguibile o una libreria finale. Il formato consente la compilazione e il linking modulari, dove diverse parti di un programma possono essere compilate separatamente e poi combinate. COFF supporta diverse architetture e tipi di dati, rendendolo un formato versatile per piattaforme differenti. È un componente cruciale nella toolchain per lo sviluppo software, abilitando la compilazione e il linking efficienti di programmi grandi e complessi. La struttura del formato facilita il debugging e consente il linking dinamico, dove le librerie vengono caricate a runtime. COFF si è evoluto nel tempo, con variazioni ed estensioni implementate da diversi sistemi operativi e compilatori.