O Common Object File Format (COFF), ou Formato Comum de Arquivo Objeto, é um formato de arquivo empregado para código objeto, executáveis e bibliotecas compartilhadas em diversos sistemas operacionais, notavelmente sistemas tipo Unix e Windows. Ele atua como um contêiner robusto para código de máquina, informações de depuração (debugging information), dados de realocação (relocation data) e tabelas de símbolos (symbol tables). Arquivos COFF são tipicamente produzidos por compiladores e montadores (assemblers) como arquivos intermediários durante o processo de construção de software (software build process). Esses arquivos objeto são então ligados (linked) por um ligador (linker) para criar um executável ou biblioteca final. O formato permite a compilação e ligação modular, onde diferentes partes de um programa podem ser compiladas separadamente e depois combinadas de forma eficiente. O COFF suporta diversas arquiteturas e tipos de dados, tornando-o um formato versátil e adaptável para diferentes plataformas de hardware e software. É um componente crucial na cadeia de ferramentas (toolchain) para o desenvolvimento de software, possibilitando a compilação e ligação eficientes de programas grandes e complexos. A estrutura do formato facilita a depuração de código e permite a ligação dinâmica (dynamic linking), onde as bibliotecas são carregadas em tempo de execução (runtime), otimizando o uso de recursos. O COFF evoluiu ao longo do tempo, com variações e extensões implementadas por diferentes sistemas operacionais e compiladores para atender a necessidades específicas.