-
Gabarito Certo
Explicação da CESPE:
"Uma gramática pode ter mais de uma árvore de uma árvore de derivação gerando determinada cadeia de terminais. Quando uma gramática permite esta característica ela é dita ambígua. A gramática apresentada neste item é ambígua porque permite gerar duas árvores de derivação distintas. Mais informações podem ser obtidas em Alfred V. Aho. Compiladores: princípios, técnicas e ferramentas. São Paulo. Pearson Addilson-Wesley, 2008. Pág 30. Uma árvore: (10 -4 ) + 3 e a outra: 10 - (4 + 3)"
"Retroceder Nunca Render-se Jamais !"
Força e Fé !
Fortuna Audaces Sequitur !
-
Claramente, essa questão está com o gabarito errado, justificativa sem sentido do CESPE
http://www.itnerante.com.br/forum/topics/quest-o-compiladores-pcf-2013?commentId=1867568%3AComment%3A403299&xg_source=activity
-
Gabarito: Certo
1ª ÁRVORE:
expr
/ \
/ \
expr - expr
/ + \
10 - 4 + 3
2ª ÁRVORE:
expr
/ \
/ \
expr + expr
/ - \
10 - 4 + 3
Fonte:
Esse exemplo está bem próximo ao exemplo desenhado na página 15 desta apresentação:
http://www.joinville.udesc.br/portal/professores/damiani/materiais/Compiladores_v2.pdf
-
o Gabarito da questão deve ser considerado errado, pois com essa gramática não é possível gerar numeros de dois dígitos (10 por exemplo), pois está faltanto a transição string -> stringstring