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.

Sc A dfalha!SSabc A dSc A dsucesso!aFigura 4.3: Análise descendente com backtrackingA análise sintática é dita ser uma análise sintática preditiva caso não seja necessário arealização de retrocesso no processo e pode ser implementada de forma recursiva ou não(através da utilização de uma pilha).4.3.1 Análise Sintática PreditivaO processo de análise preditiva (sem retrocesso) exige modificações na gramática originalpara análise:• eliminação de recursão à esquerda;• fatoração à esquerda das regras de produção;• os não-terminais que apresentarem mais de uma regra de produção, tenham o primeiroterminal derivável único (capaz de identificar a produção a ser analisada).Ou seja, deve ser possível determinar, para um dado símbolo a, qual das produçõesdeve ser derivada.Exemplo: No exemplo 2 visto acima a produção B → D | bD D → d apresenta duasalternativas de derivação. A escolha é feita a partir do primeiro terminal para cada regra(d ou b).O conjunto de símbolos terminais que iniciam sentenças deriváveis a partir de umaprodução b é denominado FIRST(β) ou PRIMEIRO(β).Exemplo: FIRST(S) = {c}; FIRST(A) = {a}; FIRST(B) = {b, d}; FIRST(D) = {d}.As regras que definem o conjunto FIRST são:25

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

Saved successfully!

Ooh no, something went wrong!