编译原理
文章平均质量分 92
编译原理
TYP_MOON
这个作者很懒,什么都没留下…
展开
-
【编译原理】FIRSTVT和LASTVT求法
FIRSTVT找FIRSTVT的三条规则:如果要找A的FIRSTVT,A的候选式中出现:A->a…,即以终结符开头,该终结符入FIRSTVTA->B…,即以非终结符开头,该非终结符的FIRSTVT入A的FIRSTVTA->Ba…,即以非终结符接终结符开头,则该终结符入FIRSTVTLASTVT找LASTVT的三条规则:如果要找A的LASTVT,A的候选式中出现:A->…a,即以终结符结尾,该终结符入LASTVTA->…B,即以非终结符结尾,该非终结符的LASTV原创 2020-05-31 17:19:28 · 8782 阅读 · 1 评论 -
【编译原理】第二章课后习题(王生原版)
文章目录给定文法,确定其语言给定语言,确定其文法语法分析证明文法是否具有二义性给定文法,确定其语言给定语言,确定其文法方法一定义的文法会产生E+E+E……之类的无限循环,舍去首先上下文无关文法是2型文法,特征是每个产生式左部都有一个非终结符。(3)中也可以S→AbA→BAB|aB→a|b3型文法3型文法是在2型文法的基础上对产生式右部做了限制:右线性文法:产生式右部是终结符号串或终结符号串接一个非终结符左线性文法:产生式右部是终结符号串或一个一个非原创 2020-05-27 20:30:57 · 28434 阅读 · 11 评论 -
【编译原理】第二章练习题
因为S->xSx|y,也就是有两种情况,S可以推出xSx,也可是推出y。而xSx中又有S,所以可以循环下去,一直推到y为止。就得出了x的n次方乘y乘x的n次方(n>=0)。从文法开始符号,应用前4个候选式若干次(包括0次),可以生成以S开头,后面连接着由若干个(包括0个)0、1、a或c构成的串。此时,如果应用第6个候选式将串首的S替换成b,那么就得到一个以b开头,后面连接着若干个0、1、a或c构成的串。因此,b前面不可能还有其他符号,所以只有选项D是正确的。上下文无关文.原创 2020-05-26 09:37:42 · 1563 阅读 · 0 评论 -
【编译原理】CFG分析树
CFG就是常说的2型文法文章目录CFG分析树短语二义性文法CFG分析树③→④→①短语对下图分析树进行分析开始符E的短语:每一棵子树的边缘之和-(E+E)开始符右节点E的短语:每一棵子树的边缘之和(E+E)括号中E的短语唯一一棵子树的边缘E+E直接短语:像这种只有两代节点的树,子树的边缘E+E称为直接短语。二义性文法➢ 如果一个文法可以为某个句子生成多棵分析树 ,则称这个文法是二义性的。在下图中,像这样的密集文法表示形式很容易引起歧义,不同的理解办法构造出的分析树也原创 2020-05-26 00:36:30 · 1776 阅读 · 0 评论 -
【编译原理】文法分类
文章目录0型文法1型文法2型文法3型文法0型文法1型文法2型文法3型文法原创 2020-05-25 19:49:26 · 772 阅读 · 0 评论 -
【编译原理】语言的定义
文章目录推导和规约句子和句型推导和规约下面是关于推导的定义:当n=1时,即符号串a0经过1步推导出an,记为直接推导。如下,推导的过程就是用产生式的右部替换左部相反,规约的过程就是用产生式的左部替换右部由此得出:推导和规约两者互为逆过程问题: 有了文法,如何判断某一词串是否是该语言的句子?解决办法1:由开始符S进行推导,若能推导出该词串,则该词串是该语言的句子。解决办法2:由该词串进行规约,若能规约到开始符S,则该词串是该语言的句子。句子和句型S经过正数步推导得出的α是G原创 2020-05-25 08:46:48 · 3087 阅读 · 0 评论 -
【编译原理】文法
文章目录文法的形式化定义产生式的简写符号约定总结:文法的形式化定义G=(VT,VN,P,S),其中VT是终结符集合,VN是非终结符集合(表示语法成分的符号)VT∩VN=ØVT∪VN=文法符号集P是产生式集合,包含了将终结符和非终结符连接成串的方法产生式的一般形式:α→β(α定义为β)①α∈(VT∪VN)+且α中至少包含VT中的一个元素,称为产生式的“头”或“左部”②β∈(VT∪VN)*,称为产生式的“体”或“右部”S是开始符号,S∈VN,开始符号是一个文法中最大的语法成分产生式的原创 2020-05-11 14:14:16 · 1804 阅读 · 1 评论 -
【编译原理】编译是怎么一个过程?
一、计算机语言分成:高级语言和低级语言。低级语言又分成汇编语言和机器语言。因为计算机只能读懂机器语言的程序,所以所有高级语言的程序都必须转成机器语言的程序。这个转换过程是由一个程序来自动完成的。二、这个程序的名字又不一样:将汇编程序转成机器语言的程序叫做汇编程序;将高级语言的程序转换成机器语言的程序叫做翻译程序。三、翻译程序又有2种不同的翻译方法,分别叫做编译和解释。...原创 2020-03-17 14:53:50 · 1009 阅读 · 0 评论