Ybadoo - Soluções em Software Livre
Tutoriais
Compiladores

(Aho, 2008) Quais são as vantagens de (a) um compilador em relação a um interpretador e (b) um interpretador em relação a um compilador?

 

As principais vantagens de um compilador em relação a um interpretador são:

  1. A execução do código compilado é mais eficiente do que a execução de um código interpretado, uma vez que o interpretador precisa realizar o processo de tradução a cada nova execução. Em programas compilados, o processo de tradução é realizado uma única vez, para a geração do código objeto.
  2. Em programas compilados o cliente recebe o código objeto resultante do processo de tradução do código fonte, de modo que o cliente não tem acesso direto ao código fonte original do programa. Em programas interpretados, o cliente precisa receber o código fonte original, que será traduzido a cada execução do programa.
  3. Durante o processo de tradução do código fonte para código objeto, o compilador pode realizar várias otimizações no código objeto resultante, visando melhorar o desempenho das instruções e a memória alocada, etapa que os interpretadores possuem dificuldade para executar.
  4. A geração do código objeto só será realizada caso nenhum erro seja encontrado no código fonte, garantindo que erros primários de codificação não sejam repassados ao código objeto a ser entregue ao cliente.

As principais vantagens de um interpretador em relação a um compilador são:

  1. A correção e alteração de erros no código fonte são mais fácies e rápidas de serem realizadas em programas interpretados, sendo muitas vezes necessário apenas realizar a correção e continuar a execução do programa. Em programas compilados, é necessário recompilar o código fonte para a geração de um novo código objeto.
  2. Interpretadores trabalham diretamente com o código fonte, permitindo que erros sejam facilmente identificados. No caso de programas compilados, o código objeto não é uma referência direta com o código fonte original, em virtude das otimizações realizadas pelo compilador, dificultando em alguns casos a identificação de erros em tempo de execução.
  3. Programas interpretados tendem a consumir menos memória que programas compilados, pois estruturas de dados só serão alocadas quando a instrução correspondente for efetivamente executada pela interpretador.

Aho, Alfred V. (2008). Compiladores: princípios, técnicas e ferramentas. 2ª edição. São Paulo: Pearson Addison-Wesley. 634 páginas.