LRSLRLRLALR文法之间的关系—编译原理

Posted 之墨_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LRSLRLRLALR文法之间的关系—编译原理相关的知识,希望对你有一定的参考价值。

系列文章戳这里👇

  1. 什么是上下文无关文法、最左推导和最右推导
  2. 如何判断二义文法及消除文法二义性
  3. 何时需要消除左递归
  4. 什么是句柄、什么是自上而下、自下而上分析
  5. 什么是LL(1)、LR(0)、LR(1)文法、LR分析表
  6. LR(0)、SLR(1)、LR(1)、LALR(1)文法之间的关系
  7. 编译原理第三章习题
  8. 词法分析、构建DFA、上下文无关文法、LL(1)分析、提取正规式

编译原理-LR(0)、SLR(1)、LR(1)、LALR(1)文法之间的关系

LR(0)分析方法


该文法的状态转移图:


SLR(1)与LR(0)文法的关系

LR(0)由于前看符号数为0,所以在各种动作中会存在很多冲突,SLR(1)分析就是为了解决部分冲突,增强分析能力。具体内容如下

举个栗子



LR(1)与SLR(1)的关系


举个栗子




续:

LR(0)与LR(1)的关系

与上例相同,LR(0)的项目集族中,状态数明显少于LR(1)项目集族

LALR(1)文法与与LR(1)文法的关系

举个栗子

LR(1)

对应的LALR(1)

LALR(1)特点

合并同心集



以上是关于LRSLRLRLALR文法之间的关系—编译原理的主要内容,如果未能解决你的问题,请参考以下文章

如何消除文法二义性如何判断二义文法—编译原理

什么是LLLRLR文法LR分析表—编译原理

编译原理—翻译方案属性栈代码

什么是上下文无关文法最左推导和最右推导—编译原理

如何消除左递归何时需要消除左递归—编译原理

编译原理 文法题目