Tópicos

Análise sintáctica ascendente LALR(1). Lookaheads. Items LR(1).

Exercício 1

Considere a gramática seguinte:

S -> G b b | a a b | b G a
G -> a
  1. Calcule o conjunto de estados LALR(1) da gramática. Identifique a tabela de análise LALR(1) correspondente.
  2. Mostre os movimentos do analisador sintáctico para a entrada baaabb (em caso de conflito, assumir o comportamento do YACC).
  3. A gramática é SLR(1)? Justifique.

Exercício 2

Considere a gramática seguinte:

E -> [ E ; L ] | id
L -> E | E ; L
  1. Calcule o conjunto de estados LALR(1) da gramática. Identifique a tabela de análise LALR(1) correspondente.
  2. Mostre os movimentos do analisador sintáctico para a entrada [ id ; id ; id ] (em caso de conflito, assumir o comportamento do YACC).
  3. A gramática é LL(1)? Justifique.

Exercício 3

Considere a gramática seguinte:

S -> i S | i S e S | x
  1. Calcule o conjunto de estados LALR(1) da gramática. Identifique a tabela de análise LALR(1) correspondente.
  2. Compacte a tabela de análise que obteve, eliminando as reduções unitárias e quase unitárias, bem como propagar as reduções que permitam compactar a tabela.
  3. Mostre os movimentos do analisador sintáctico para a entrada ixixex (em caso de conflito, assumir o comportamento do YACC).
  4. A gramática é SLR(1)? Justifique.

Resoluções

Soluções disponíveis no wiki da disciplina.