A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

III – Análise sintáctica Eliminação de ambiguidade Eliminação de recursividade à esquerda Factorização à esquerda Bibliografia aconselhada: –Aho, Sethi.

Apresentações semelhantes


Apresentação em tema: "III – Análise sintáctica Eliminação de ambiguidade Eliminação de recursividade à esquerda Factorização à esquerda Bibliografia aconselhada: –Aho, Sethi."— Transcrição da apresentação:

1 III – Análise sintáctica 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 LFA 1999/ Jorge Morais

2 Ambiguidade de gramáticas 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 LFA 1999/ Jorge Morais

3 Ambiguidade do if-then-else 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 LFA 1999/ Jorge Morais

4 Eliminação de ambiguidade 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 LFA 1999/ Jorge Morais

5 Precedência de operadores 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 LFA 1999/ Jorge Morais

6 Recursividade à esquerda 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 | LFA 1999/ Jorge Morais

7 Eliminação da Recursividade 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 LFA 1999/ Jorge Morais

8 Exemplo 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 LFA 1999/ Jorge Morais

9 Factorização à esquerda A factorização à esquerda é uma transformação útil para parsers preditivos A 1 | 2 |... | n | A A | A 1 | 2 |... | n LFA 1999/ Jorge Morais


Carregar ppt "III – Análise sintáctica Eliminação de ambiguidade Eliminação de recursividade à esquerda Factorização à esquerda Bibliografia aconselhada: –Aho, Sethi."

Apresentações semelhantes


Anúncios Google