【发布时间】:2018-03-26 13:44:05
【问题描述】:
所以一个来源说是,另一个说不是
一位消息人士这样说:
另一个人这样说:
我找到的最接近的答案是这样的:
Relationship between LR(0), LL(0), LALR(1), etc?
但这并不能回答 LL(1) 和 LALR(1) 之间的关系
也如果您能回答更一般的问题,即 LL(k) 和 LALR(k) 之间的关系是什么,那就更有帮助了
谢谢。
【问题讨论】:
-
我不知道第一个图表来自哪里,但它完全不可靠。运算符优先级 语法 是 LR(1)。有些人(和维基百科)似乎认为“优先”这个词不相关,但这是不正确的。 运算符语法可能有歧义,因此不是 LR(1),但如果可以导出优先关系,则该语法是 LR(1)。
-
@rici 当运算符优先级语法可能不明确时,运算符优先级语法如何成为 LR(1)?这是否意味着如果语法是运算符优先级,那么我可以 100% 确定它也是 LR(1) 吗?你也有这个来源吗?谢谢
-
如果解析中的任何点至多存在一个优先关系,则运算符语法就是运算符优先级。
<•关系是移位动作,•>是归约。所以不可能有换班冲突。证明不存在 reduce-reduce 冲突只是稍微复杂一些。 -
任意运算符语法可能不明确,您可以构建一个运算符优先级解析器,而不是基于语法的优先关系。但是,这并没有使语法运算符优先级(恕我直言)。例如,这就是维基百科页面的问题。
-
如果您需要资源,请在Computer Science 等学术网站上提问。我们是务实的程序员。
标签: parsing compiler-construction