Compiladores
1. Assembly e Compiladores
A razão mais comum para se querer traduzir código fonte é a de criar um programa executável. O nome “compilador” é reservado para programas que traduzem código- fonte de uma linguagem de alto-nível para uma de baixo-nível (por exemplo, em linguagem de máquina ou linguagem assembly).
Linguagem Assembly é uma versão mnemônica do código de máquina, na qual, nomes são usados ao invés de códigos binários. O assembler (montador) converte as instruções em linguagem assembly para a linguagem objeto relocável.

2. Linker
- Tem por função receber o código relocável, produzido pelo assembler, combinar com outros arquivos e gerar um arquivo executável.
- Lembrando que saída do linker é um único arquivo, sendo ainda um código objeto relocável.
3. Loader
O loader possui as funções de:
- Ler o código objeto relocável do disco que foi produzido pelo linker;
- Determinar o endereço de memória que o programa será carregado;
- Alterar os endereços relocáveis das instruções que fazem acesso à memória, obtendo assim o código objeto absoluto;
- Carregar as instruções alteradas e os dados na memória, no endereço apropriado.
