编译原理 自底向上的学习笔记

Posted goto_1600

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编译原理 自底向上的学习笔记相关的知识,希望对你有一定的参考价值。

LR0 LR1(带向前搜索符) SLR1分析表结构都是

这种情况的,解释一下acc,一张表格有且仅有一个acc,也就是终止状态,当存在I0并且点到了最后的时候那么就是acc了。
在写文法的时候我们要先预处理文法,一是先分裂文法也就是把文法拆开,二是拓展文法,比如一开始的符号是s ,我们加入一个s’->s的状态
LR(0)
解释一下规约和移进
规约就是s->t-
移进就是s->a-t t是终结符

LR(0)

LR0 缺点就是存在同时规约和移进的情况
先按照上述方式构建表格,然后画转移图,转移完,填补表格,对于某一个状态要规约也就是位置点到了最后的情况,对于终结符该行都要写上rx,x代表当前语句对于初始的语句的哪一个。

还有个问题就是同时规约和移进的情况,判断是不是lr(0)分析表的条件是移进终结符和该式子最前面的非终结符的follow集交起来是否为空,为空就是合法的。

SLR(1)就改进了这一点,和上述唯一不同的就是规约,规约的时候不是无脑填r,我们只填follow集的r

带搜索的lr1,就是我们在构建的时候要处理搜索符,搜索符号的确定规则就是如果是开始符号就是follow集,对于其他就是找当前点后面对应终结符的后面一个的位置,如果是空,那么照抄,如果是非终结符,抄他的first集,如果是终结符那么直接抄,注意如果first里面有空串的话,将空串带进去,如果对于某个式子满足带进去,空串是最后一个,那么把这个式子的搜索符抄下来。

注意在匹配的时候我们每次要注意匹配符,也会变,在转移的时候注意要把拓广文法里面所有满足的文法都记下来,这里满足指的是点后面那个非终结符能拓展的式子。

以上是关于编译原理 自底向上的学习笔记的主要内容,如果未能解决你的问题,请参考以下文章

编译原理语法分析之自底向上分析之算符优先分析法

计算机组成原理学习笔记

编译原理要点

编译器构造中自底向上的LALR语法分析的语法分析表生成的实现

编译原理语法分析

编译原理语法分析