我对上下文无关语法中的歧义概念并不是很清楚。如果有人可以帮助我并解释这个概念或提供一个很好的资源,我将不胜感激。
问问题
2057 次
3 回答
2
你会如何解析这个:
if condition_1 then if condition_2 then action_1 else action_2
“else”属于哪个“if”?
在 Python 中,它们是:
if condition_1:
if condition_2:
action_1
else:
action_2
和:
if condition_1:
if condition_2:
action_1
else:
action_2
于 2011-05-17T18:39:01.880 回答
0
考虑一个由上下文无关文法识别的输入字符串。如果字符串有两个或多个不同的最左边推导,或者您希望的解析树,则该字符串的推导不明确。如果语法产生歧义,则它是歧义的。例如,语法 S -> E + E | E * E 是一种模棱两可的语法,因为它模棱两可地导出字符串 x + x * x,换句话说,表示表达式的解析树不止一个(实际上有两个)。可以通过将语法更改为:
E -> E + T | 吨
T -> T * F | F
F -> (E) | X
重构的文法总是明确地导出字符串,即导出总是产生相同的分析树。
于 2013-02-17T00:05:44.330 回答