segunda-feira, 5 de maio de 2008

Imagens esquemáticas de compiladores e interpretadores.

Tá, nós já demos várias definições de compiladores e interpretadores e explicamos algumas diferenças entre eles aqui no blog. Mas vamos continuar a explicar, para que todo mundo entenda melhor.

Os Compiladores são tradutores que mapeiam programas escritos em linguagem de alto nível para programas equivalentes em linguagem de máquina. A execução de um programa escrito em linguagem de alto níve
l é, basicamente, um processo de dois passos: primeiro ocorre a conversão do programa fonte para o programa objeto equivalente, esse intervale de tem é chamado de tempo de compilação; Depois, o programa objeto é executado no intervalo de tempo chamado de tempo de execução.

Já os interpretadores, são processadores que aceitam como entrada o código intermediário de um programa anteriormente traduzido e produzem o "efeito de execução" do algoritmo original, sem porém mapeá-lo para a linguagem de máquina. Ou seja, a interpretação ocorre no tempo de execução, não sendo gerado um programa objeto.


Há alguns interpretadores que não utilizam um código intermediário, trabalhando diretamente sobre o programa fonte cada vez que esse deve ser executado. Mas esse enfoque consome muito tempo. Uma estratégia mais eficiente é a aplicação de técnicas de compilação para traduzir o programa fonte para uma forma intermediária que é, então, interpretada.


Adaptado do livro "Implementação de Linguagens de Programação: Compiladores", de Ana Maria de Alencar Price e Simão Sirineo Toscani.

Nenhum comentário: