Os programas que traduzem o código -fonte para o código do objeto são chamados
compiladores e
montadores .
*
Compiladores: Eles traduzem o código-fonte de alto nível (escrito em idiomas como C, C ++, Java, Python, etc.) em linguagem de montagem ou diretamente no código da máquina (código do objeto). O processo normalmente envolve vários estágios, incluindo análise lexical, análise, análise semântica, otimização e geração de código. O código do objeto resultante é específico para a arquitetura de destino (por exemplo, x86-64, braço).
*
montadores: Eles traduzem a linguagem de montagem (uma representação de baixo nível e legível pelo homem do código da máquina) no código do objeto. A linguagem de montagem usa mnemônicos para representar as instruções da máquina, facilitando o trabalho dos programadores do que o código de máquina bruto.
Enquanto os compiladores geralmente geram linguagem de montagem como uma etapa intermediária, eles produzem o código do objeto. Os montadores trabalham diretamente com o idioma da montagem para produzir código de objeto. Portanto, ambos são cruciais no processo de transformar o código -fonte em programas executáveis. Um vinculador combina esses arquivos de objeto (e geralmente pré-compilados) para criar o arquivo executável final.