Bottom-Up Parsing/Exercise 7: LALR(1): Difference between revisions

From Wiki**3

Root (talk | contribs)
Root (talk | contribs)
 
(4 intermediate revisions by the same user not shown)
Line 4: Line 4:
Considere a seguinte gramática, onde '''B''' é o símbolo inicial e '''{ w, x, y, z }''' é o conjunto de símbolos terminais.
Considere a seguinte gramática, onde '''B''' é o símbolo inicial e '''{ w, x, y, z }''' é o conjunto de símbolos terminais.


::::::H → A | B | w
H → A | B | w
::::::A → B x | z H y
A → B x | z H y
::::::B → A x | y H z
B → A x | y H z


# Construa a tabela de análise para um analisador sintáctico ascendente LALR(1) para esta gramática, indicando o conjunto de estados do analisador e os símbolos de antevisão. A gramática é SLR(1)? Justifique.
# Construa a tabela de análise para um analisador sintáctico ascendente LALR(1) para esta gramática, indicando o conjunto de estados do analisador e os símbolos de antevisão. A gramática é SLR(1)? Justifique.
Line 15: Line 15:
== Solution ==
== Solution ==


* [[Media:co15-2015061903b.pdf|solution (draft)]]
{{CollapsedCode|Solução completa|
[[image:co15-2015061903b.jpg|solution (draft)]]
}}


[[category:Compiladores]]
[[category:Compiladores]]
[[category:Ensino]]
[[category:Ensino]]

Latest revision as of 09:53, 2 May 2024

Problema

Considere a seguinte gramática, onde B é o símbolo inicial e { w, x, y, z } é o conjunto de símbolos terminais.

H → A | B | w
A → B x | z H y
B → A x | y H z
  1. Construa a tabela de análise para um analisador sintáctico ascendente LALR(1) para esta gramática, indicando o conjunto de estados do analisador e os símbolos de antevisão. A gramática é SLR(1)? Justifique.
  2. Tal como apresentada, a gramática pode ser processada por um analisador LL(1)? Justifique.
  3. Compacte a tabela de análise (de 1.), eliminando reduções unitárias e quase unitárias, bem como propagando reduções que permitam compactar a tabela.
  4. Apresente a tabela com o conteúdo da pilha do analisador, a entrada e a acção realizada em cada passo da análise, para a sequência de entrada y z w y z. Em caso de conflitos, assuma o comportamento da ferramenta YACC.

Solution

Solução completa

solution (draft)