Você está na página 1de 10

Exercícios

Exercício 1
• Verifique se a gramática a seguir é LL(1). Justifique a
sua resposta. Em caso negativo, obtenha uma
gramática equivalente que seja LL(1).
Resolução
• Não é LL(1) pois:
– FIRST (aaXaa)= FIRST (abYab)={a}.
Resolução
• Para obter uma gramática equivalente LL(1) é
necessário fazer seguinte fatoração:

S  aS’
S’  aXaa | bYab
X  bX |
Y  bY | 
Resolução
• Desta maneira, temos:
S  aS’
S’  aXaa | bYab
X  bX |
Y  bY | 

1 - Para um terminal a, tanto α quanto β não derivam


cadeias começando com a
• Para o terminal S’, temos: FIRST(aXaa)={a}, FIRST(bYab)={b}
e {a}∩{b}={};
Resolução
• Desta maneira, temos:
S  aS’
S’  aXaa | bYab
X  bX |
Y  bY | 

2- No máximo, um dos dois, α ou β, pode derivar a


cadeia vazia
• S e S’ não podem derivar a cadeia vazia
• Ambos, X e Y só possuem uma regra para derivar a cadeia vazia
Resolução
• Desta maneira, temos:
S  aS’
S’  aXaa | bYab
X  bX |
Y  bY | 

3 - α ⇒* ε implica que FIRST(β) ∩ FOLLOW(A) = ∅


β ⇒* ε implica que FIRST(α) ∩ FOLLOW(A) = ∅ .

• S e S’ não podem derivar a cadeia vazia


• Para X: FIRST(bX)={b}, FOLLOW(X)={a} e {b}∩{a}={};
• Para Y: FIRST(bY)={b}, FOLLOW(Y)={a} e {b}∩{a}={}.
Exercício 2
• Construa a tabela de análise sintática LL(1) para a
seguinte gramática e faça a análise da sentença id =
num; id = (num + num)
Exercício 2
• Construa a tabela de análise sintática para a seguinte
gramática e faça a análise da sentença X.
Exercício 2
• Construa a tabela de análise sintática para a seguinte
gramática.

Você também pode gostar