В настоящее время учится на экзамен и просматривает прошлые документы, когда я сталкивался с этим вопросом.Почему эта грамматика EBNF неоднозначна?
Ниже грамматика в EBNF, который описывает простые арифметические выражения, как 1 + 2 * 3 - 4:
Expression = Operand, {Operator, Operand}; Operand = "1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"|"9"; Operator = "+"|"-"|"*"|"/";
(IV) Используя эту грамматику, существует несколько способов вычисления выражения например, 1 + 2 * 3 - 4. Опишите два из них и объясните, что такое , это означает о предоставляемой грамматике. [2 балла]
В моем понимании, неоднозначная грамматика означает, что либо более чем один самый левый или самый правый вывод, который, как правило, подразумевает, что существуют некоторая неопределенность в порядке грамматики о precendence. Но здесь нет приоритета, и рекурсия линейна.
Рекомендации?