11.07.2015 Views

Compiladores: PASCALjr - WWW2 - Udesc

Compiladores: PASCALjr - WWW2 - Udesc

Compiladores: PASCALjr - WWW2 - Udesc

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Capítulo 4Análise Sintática4.1 O Papel do Analisador SintáticoA análise sintática constitui a segunda etapa de um tradutor. Sua função é verificarse as construções usadas no programa estão gramaticalmente corretas. Normalmente, asestruturas sintáticas válidas são especificadas através de uma gramática livre de contexto.Dada uma GLC e uma sentença (programa fonte) s, o objetivo do parser é verificarse s pertence a GLC, através da construção de uma árvore de derivação.O processo de construção dessa árvore pode ser feito de forma explícita (construindoseo TDA) ou implícita, através de chamadas recursivas das rotinas que aplicam as regrasde produção da gramática durante o reconhecimento.Existem duas estratégias básicas: Descendente (Top-Down) e Ascendente (Bottom-Up). Na estratégia top-down constrói-se a árvore a partir da raiz em direção às folhas(tokens), enquanto que na bottom-up, o processo é invertido e a construção é realizadapartindo-se das folhas, agrupando-se os tokens até que a raiz da árvore seja gerada.A árvore gramatical é então a saída para as próximas fases da compilação.Revisão sobre Gramáticas Livre de Contexto (GLC)Uma gramática livre de contexto é qualquer gramática da forma: A → α, onde A é umsímbolo não-terminal e α um elemento pertencente a (V N ∪ V T ) ∗ .Exemplo de produções de uma G.L.C.: S → SS+ | SS∗ | a.Árvores de DerivaçãoÁrvore de derivação é a representação gráfica de uma derivação de sentença.Exemplo: Considerando a gramática abaixo, gerar árvore de derivação que comprovaque a sentença 45 é válida (ver Figura 4.1).21

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!