Interpretadores, Compiladores e Tradutores

O computador deve converter os comandos dados em linguagem de alto nível para linguagem de máquina (códigos binários). Esta tarefa de conversão é feita por um programa especial de computador, isto é, um programa que recebe as instruções em linguagem de alto nível e dá como saída outro programa constituído de instruções binárias. Ao programa original, em linguagem de alto nível, dá-se o nome de Programa Fonte e ao resultado, em linguagem de máquina, de Programa Objeto.

Este programa especial recebe o nome de Compilador, e a Figura I-8 ilustra sua função.

Figura I-8. Ilustração do papel do programa compilador

Existem três métodos básicos de abordagem na tradução de linguagem de alto nível para linguagem de máquina:

- INTERPRETADOR

- COMPILADOR

- TRADUTOR

Primeiro Método: INTERPRETADOR

O programa conversor recebe a primeira instrução do programa fonte, confere para ver se está escrita corretamente, converte-a em linguagem de máquina e então ordena ao computador que execute esta instrução. Depois repete o processo para a segunda instrução, e assim sucessivamente, até a última instrução do programa fonte. Quando a segunda instrução é trabalhada, a primeira é perdida, isto é, apenas uma instrução fica na memória em cada instante.

Se este programa fonte for executado uma segunda vez, novamente haverá uma nova tradução, comando por comando, pois os comandos em linguagem de máquina não ficam armazenados para futuras execuções. Neste método, o programa conversor recebe o nome de INTERPRETADOR.

Segundo Método: COMPILADOR

O programa conversor recebe a primeira instrução do programa fonte, confere-a para ver se está escrita corretamente, converte-a para linguagem de máquina em caso afirmativo e passa para a próxima instrução, repetindo o processo sucessivamente até a última instrução do programa fonte. Caso tenha terminado a transformação da última instrução do programa fonte e nenhum erro tenha sido detectado, o computador volta à primeira instrução, já transformada para linguagem de máquina e executa-a. Passa à instrução seguinte, executa-a, etc., até a última.

Se este programa for executado uma segunda vez, não haverá necessidade de uma nova tradução, uma vez que todos os comandos em linguagem binária foram memorizados em um novo programa completo. Neste método, o programa conversor recebe o nome de COMPILADOR.

Geralmente o COMPILADOR exige mais memória que o INTERPRETADOR, razão pela qual aquele é mais usado em computadores maiores e este em micros pessoais. Mas com a tendência dos micros pessoais de terem memórias maiores, mesmo neles, os COMPILADORES são os programas conversores preferidos.

Terceiro Método: TRADUTOR

Neste método, o computador ao invés de armazenar as instruções do programa fonte tal como lhe são fornecidas, ele transforma-as em códigos intermediários, que não exigem tanto espaço de memória como as instruções originais. Estas instruções intermediárias são em seguida transformadas em linguagem de máquina e executadas, funcionando daí por diante como no INTERPRETADOR.

Neste método o programa conversor é conhecido como TRADUTOR.

Neste estudo usa-se simplesmente o termo COMPILADOR para se referir a qualquer um dos três métodos de compilação. Na realidade, quase sempre é indiferente para um usuário não profissional que o computador trabalhe com um COMPILADOR, INTERPRETADOR ou com um TRADUTOR.