Execução de programas

Um programa de computador não é escrito em uma linguagem que a máquina entende, por isso é necessário haver uma tradução do programa para a linguagem binária.

Compilação

Traduz um programa escrito em linguagem de alto nível para linguagem binária. Exemplo:
	    int main (){
          	int Parcela1, Parcela2, Contador;
          
		Parcela1=1;
		Parcela2=2;
		Contador=5;
		for (i=Contador; i>0;i--)
			Parcela2=Parcela1+Parcela2;
		printf ("Parcela2 = %d\n",Parcela2);
		exit(0);
	    }

Compilador executa três funções:

Montagem

Tradução de um programa em linguagem de montagem (código fonte) para linguagem binária (código objeto).
Funções básicas: Exemplo:
          lw 0 1 Parcela1
          lw 0 2  Contador
          add 2 0 3 
inicio    beq 3 0 fim
          lw 0 4 Parcela2
          add 1 4 4 
          sw 0 4 Parcela2
          addi 3 3 -1
          beq 3 3 inicio
          call printf
fim       halt
Parcela1  .fill 1
Parcela2  .fill 2
Contador  .fill 5

Ligação ou link-edição

Algumas rotinas já existem codificadas no sistema, por exemplo, rotinas para entrada e saída de dados, de modo que o programador não precisa codificá-las.
Exemplo: printf(), readln(), rotinas matemáticas como seno e coseno.
Estas rotinas são armazenadas em bibliotecas que são incluídas no código objeto gerado pelo compilador.
Exemplo: No código C acima foi utilizada a rotina printf que é externa. O compilador traduziu por "call printf".
Para que o código da subrotina externa seja anexado ao código objeto utiliza-se o processo de ligação.
Este processo examina todo o código objeto e procura por referências externas não resolvidas assinaladas pelo compilador.
Ele procura pela rotina no sistema e se a encontra, inclui seu código no código objeto, caso contrário, gera uma mensagem de erro.

Interpretação

Realiza as três fases (compilação, ligação e execução) comando a comando do programa fonte. Um programa fonte é executado pelo programa interpretador.

Compilação X Interpretação