美文网首页编译原理compile
构造LR(0)分析表的理论知识

构造LR(0)分析表的理论知识

作者: 鱼大鹿 | 来源:发表于2020-10-30 00:54 被阅读0次

1、找项目集规范族有S'->A·这种形状的那个状态Ik,就是第k个状态,则把分析表第k行的#列标上acc。

2、按状态序号顺序分析状态的项目和GOTO函数,主要就是看每个项目的点后面的符号。

(1)要是是个终结符,看输入这个终结符后去的哪个状态,比如当前是状态I0,对于第二个项目E->·aA,输入a以后去了状态I2,那就在分析表中第0行的a列写上S2,意思就是状态Ik输入Vt后去了Ij状态。

(2)要是是个非终结符,这个更好理解,比如从状态Ik输入这个非终结符以后去了状态Ij,那就在GOTO表的第k行第Vn列写j。

3、你会发现有的项目的点是在最后,这就是分析表里面那些小r的来历了。先看这个项目所在的状态,再看点前面的规则是文法里面的第几个规则,比如说状态I10的A->d·里面的A->d就是文法的第4条规则,那就在分析表的第10行所有的终结符列包括#列写上r4,就是ACTION列的一行写满。即状态Ik的项目来自于文法的第j条规则,则分析表的第k行都是rj。

文章出处,我也是看了他的文章才恍然大悟,谢谢他!

相关文章

  • 构造LR(0)分析表的理论知识

    1、找项目集规范族有S'->A·这种形状的那个状态Ik,就是第k个状态,则把分析表第k行的#列标上acc。 2、按...

  • 编译原理——LR分析表

    上周作业涉及到了LR(0) SLR分析表的构造,花了比较多的时间回顾,打算这次再整合一下 LR(0)分析表 自底向...

  • 各上下文无关文法的区别

    LL(0) 自上而下的分析文法 使用最左匹配的推导产生句子 LR(0) LR(0)文法采用自下而上分析,从左分析,...

  • 编译原理构造LR0分析表

    代码已经调试通,直接从实验报告复制粘贴来的,可能会有中文编码问题,调成utf-8就行。 【实验名称】 LR(0)分...

  • 第四章第2节 LR分析法

    LR分析法 LR分析法(Knuth,1963)最大的,可以构造出相应 移入-归约语法分析器的文法类L:对输入进行从...

  • LR(0)项目

    今天在宿舍自学了LR(0)项目集规范族的构造,做了一些小笔记。 首先,要知道什么是LR(0)项目:在文法G中每个产...

  • LR(0)语法分析器的实现代码(python)

    构造LR(0)项目集:构造I的闭包CLOSURE(I)的算法如下:I的任何项目都属于CLOSURE(I);若A→α...

  • 编译器笔记16-语法分析-LALR分析法

    LALR分析法的提出 LR(1)分析法实际上是根据展望符集合的不同将原始的LR(0)项目进行分裂,分裂成不同的LR...

  • python LR语法编译器

    LR语法分析概述 一.计算识别活前缀 二.计算LR项目集合识别活前缀的DFA 三.判断是不是合法LR(0)文法 四...

  • 第四章第4节 SLR分析

    SLR 分析 表达式文法的 SLR 分析表 SLR分析表构造算法 冲突依然存在

网友评论

    本文标题:构造LR(0)分析表的理论知识

    本文链接:https://www.haomeiwen.com/subject/oskrvktx.html