![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编译原理
文章平均质量分 70
世界上最菜的人
这个作者很懒,什么都没留下…
展开
-
编译原理基本定义(LR(0)与SLR(1))
LR(0)第一步:改写为扩广文法,一般只是新加一个起始非终结符,并且将所有的产生式拆开即可,然后在所有文法的前面加从0开始的编号,以便构建LR(0)分析表的时候有用。第二步:列出所有项目。这个比较简单,将所有的产生式插空加点即可。第三步:写出所有项目集规范族。即写出所有项目的转移,并且标号。第四步:画出状态转移。即根据第三步构造的项目写出DFA。第五步:作出LR(0)分析表。一般题目都只会问到LR(0)的分析表,有些第三小问会问对一些指定的输入串进行分析,这时候也比较简单,下面先给个例子。例子原创 2021-12-27 18:47:00 · 7359 阅读 · 1 评论 -
编译原理基本定义(文法、算符文法、算符优先文法、算符优先关系表、算符优先分析过程)
文法文法和语言分为4类。0型文法:最大类,包含1、2、3型文法。1型文法:对0型文法来说,所有的产生式的右边的字符长度都要大于左边的字符长度。2型文法:所有的产生式左边都只有一个字符。3型文法:在满足2型文法的基础上,每个产生式具有以下形式:A–>a(终结符)、A–>a(终结符)B(非终结符),或者具有以下形式:A–>a(终结符)、A–>B(非终结符)a(终结符)。例:S–>aSS–>aAA–>bAA–>bBB–>cBB–>原创 2021-12-27 12:35:21 · 5728 阅读 · 0 评论 -
编译原理基本定义(短语、直接短语、句柄、素短语、最左素短语)
一般先根据句型写出语法树,然后再根据语法树进行求解。举个例子:先画出语法树(最左推导):短语:在语法树中,先找出所有的非终结符,然后用叶子节点去替换他们,最后得到的集合就是短语的集合。这里的非终结符从上到下为:E、E、T、E、T、F、T、T、F。我们用叶子节点全部替换这些非终结符。所以短语有:T、F、TF、i、T+TF、T+T*F+i。(重复的去掉了)直接短语:在语法树中,一步就能够用叶子节点替换掉非终结符的短语。在这个例子,我们可以用叶子节点T一步替换掉E,那么T就是一个直接短语,然后我们原创 2021-12-26 17:04:28 · 10856 阅读 · 4 评论