Código objeto

 Nota: Não confundir com Programação orientada a objeto.
Diagramas de blocos

Em computação, código objeto ou módulo objeto é o produto de um compilador.[1] Em um sentido geral código objeto é uma sequência de comandos ou instruções numa linguagem de computador,[2] geralmente numa linguagem código de máquina (i.e., binária) ou uma linguagem intermediária, como register transfer language (RTL). O termo indica que o código é o objetivo ou resultado do processo de compilação, com algumas fontes iniciais referindo-se ao código fonte como um "programa sujeito".

Ficheiros objetos podem por sua vez ser linkados para formar um ficheiro executável ou ficheiro de biblioteca. Para ser usado, código objeto deve ser colocado em um arquivo executável, um ficheiro de biblioteca ou um ficheiro objeto.

Código objeto é uma porção de código de máquina que ainda não foi linkada a um programa completo. É o código de máquina para uma biblioteca ou módulo específico que vai compor o produto concluído. Também pode conter placeholders ou offsets, não encontrados no código de máquina de um programa completado, que o linker vai usar para conectar tudo junto. Enquanto código de máquina é código binário que pode ser executado diretamente pela CPU, código objeto tem os saltos parcialmente parametrizados para que um linker possa preenchê-los.

Um assembler é usado para converter código assembly em código de máquina (código objeto). Um linker linka vários ficheiros (e bibliotecas) objetos para gerar um executável. Assemblers também podem montar diretamente para ficheiros executáveis ​​de código de máquina sem a etapa intermediária de objeto.

  1. «Compiler». TechTarget. Consultado em 1 de setembro de 2011. Traditionally, the output of the compilation has been called object code or sometimes an object module. 
  2. Aho, Alfred V.; Sethi, Ravi; Ullman, Jeffrey D. (1986). «10 Code Optimization». Compilers: principles, techniques, and tools. Col: Computer Science. [S.l.]: Mark S. Dalton. p. 704. ISBN 0-201-10194-7