Carregar apresentação
A apresentação está carregando. Por favor, espere
1
III – Análise sintáctica
DEI Eliminação de ambiguidade Eliminação de recursividade à esquerda Factorização à esquerda Bibliografia aconselhada: Aho, Sethi e Ullman – secções 4.2 e 4.3 Jorge Morais LFA 1999/
2
Ambiguidade de gramáticas
DEI Uma gramática diz-se ambígua se existirem duas derivações diferentes para uma mesma sequência Exemplo: E E + E id + id +id Jorge Morais LFA 1999/
3
Ambiguidade do if-then-else
DEI Inst if Expr then Inst | if Expr then Inst else Inst | resto... Gramática ambígua Exemplo: if E1 then if E2 then S1 else S2 Jorge Morais LFA 1999/
4
Eliminação de ambiguidade
DEI Associar cada else com o then não associado mais próximo Inst InstA | InstNA InstA if Expr then InstA else InstA | resto InstNA if Expr then Inst | if Expr then InstA else InstNA Jorge Morais LFA 1999/
5
Precedência de operadores
DEI Consideremos a gramática: E E + E | E - E | E * E | E / E | ( E ) | id Pode-se eliminar a ambiguidade determinando a precedência de operadores: E E + T | E - T | T T T * F | T / F | F F ( E ) | id Jorge Morais LFA 1999/
6
Recursividade à esquerda
DEI Uma gramática diz-se recursiva à esquerda se existe uma variável A tal que existe uma derivação A + A Exemplo: A A | Eliminação da recursividade à esquerda A A’ A’ A’ | Jorge Morais LFA 1999/
7
Eliminação da Recursividade
DEI A A 1 | A 2 | ... | A m | 1 | 2 | ... | n onde nenhum i começa por A Podemos reescrever como A 1 A’ | 2 A’ | ... | n A’ A’ 1 A’ | 2 A’ | ... | m A’ | Esta regra só elimina derivações de um passo Jorge Morais LFA 1999/
8
Exemplo DEI E E + T | E - T | T T T * F | T / F | F F ( E ) | id
E T E’ E’ + T E’ | - T E’ | T F T’ T’ * F T’ | / F T’ | F ( E ) | id Jorge Morais LFA 1999/
9
Factorização à esquerda
DEI A factorização à esquerda é uma transformação útil para parsers preditivos A 1 | 2 | ... | n | A A’ | A’ 1 | 2 | ... | n Jorge Morais LFA 1999/
Apresentações semelhantes
© 2025 SlidePlayer.com.br Inc.
All rights reserved.