Ybadoo - Soluções em Software Livre
Tutoriais
Compiladores

(Price, 2005) Qual o significado de "passo" no processo de compilação? Quais as vantagens e desvantagens de implementar um compilador em vários passos?

 

Uma compilação pode ser realizada em um ou em vários passos. Entende-se por passo a passagem completa do compilador sobre o programa fonte que está sendo compilado. Em uma compilação em vários passos, a execução de um passo termina antes de iniciar-se a execução dos passos seguintes. Assim, o compilador de dois passos, por exemplo, poderia combinar a análise léxica e análise sintática num primeiro passo e a análise semântica e a geração de código num segundo passo.

De outra forma, pode-se utilizar o analisador sintático como módulo principal: para construir a árvore sintática, obtém os tokens necessários através de chamadas ao analisador léxico e chama o processo de geração de código para executar a análise semântica e geração de código objeto.

Os critérios para escolha da forma de implementação envolvem: memória disponível, tempo de compilação ou tempo de execução, características da linguagem, equipe de desenvolvimento, disponibilidade de ferramentas de apoio, e prazo de desenvolvimento.

A principal vantagem de se construir compiladores de vários passos é a modularização alcançada no projeto e na implementação dos processos que constituem o compilador.

A principal desvantagem é o aumento do projeto total, com a necessidade de introdução das linguagens (arquivos) intermediárias.

Price, Ana Maria de Alencar. (2005). Implementação de Linguagens de Programação: compiladores. 3ª edição. Porto Alegre: Instituto de Informática da UFRGS: Sagra Luzzatto. 212 páginas.