【问题标题】:SR conflict in LR(0) and SLR(1) will always be equal for some context free grammar?对于某些上下文无关语法,LR(0) 和 SLR(1) 中的 SR 冲突总是相等的?
【发布时间】:2022-01-09 15:50:10
【问题描述】:

有人告诉我这个说法是错误的,但我认为这是真的。

考虑在 LR(0) 中没有 SR 冲突的文法,那么它在 SLR(1) 中也不应该有 SR 冲突,因为它比 LR(0) 更强大。所以在这种情况下,两者的 SR 冲突是相等的。 所以给定的陈述应该是真的。 我是不是在哪里弄错了?

【问题讨论】:

  • 短语“对于某些 CFG 将始终相等”是奇怪的措辞。如果您的意思是“对于 any CFG 将始终相等”,那么不,那是错误的。如果您的意思是“对于某些 CFG 是相等的”,那么是的,这是真的。

标签: parsing compiler-construction grammar context-free-grammar lr


【解决方案1】:

LR(0) 算法将在任何混合了 shift 和 reduce 动作的状态下产生 shift-reduce 冲突,因为没有可用的前瞻。当要移动的标记不在要减少符号的 FOLLOW 集中时,SLR(1) 解析器可以解决这些冲突。因此,LR(0) 解析器存在移位归约冲突,这些冲突不在 SLR(1) 解析器中用于相同的语法,但 SLR(1) 解析器中的每个冲突也在 LR(0) 语法中。

【讨论】:

    猜你喜欢
    • 2015-10-05
    • 2012-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多