编译原理作业参考答案汇总

上传人:jiups****uk12 文档编号:91019931 上传时间:2019-06-20 格式:DOC 页数:19 大小:887.51KB
返回 下载 相关 举报
编译原理作业参考答案汇总_第1页
第1页 / 共19页
编译原理作业参考答案汇总_第2页
第2页 / 共19页
编译原理作业参考答案汇总_第3页
第3页 / 共19页
编译原理作业参考答案汇总_第4页
第4页 / 共19页
编译原理作业参考答案汇总_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《编译原理作业参考答案汇总》由会员分享,可在线阅读,更多相关《编译原理作业参考答案汇总(19页珍藏版)》请在金锄头文库上搜索。

1、编译原理 作业参考答案第1章 引 言1、解释下列各词源语言:编写源程序的语言(基本符号,关键字),各种程序设计语言都可以作为源语言。源程序: 用接近自然语言(数学语言)的源语言(基本符号,关键字)编写的程序,它是翻译程序处理的对象。目标程序: 目标程序是源程序经过翻译程序加工最后得到的程序。目标程序(结果程序)一般可由计算机直接执行。低级语言:机器语言和汇编语言。高级语言:是人们根据描述实际问题的需要而设计的一个记号系统。如同自然语言(接近数学语言和工程语言)一样,语言的基本单位是语句,由符号组和一组用来组织它们成为有确定意义的组合规则。翻译程序: 能够把某一种语言程序(源语言程序)改变成另一

2、种语言程序(目标语言程序),后者与前者在逻辑上是等价的。其中包括:编译程序,解释程序,汇编程序。编译程序: 把输入的源程序翻译成等价的目标程序(汇编语言或机器语言),然后再执行目标程序(先编译后执行),执行翻译工作的程序称为编译程序。解释程序: 以该语言写的源程序作为输入,但不产生目标程序。按源程序中语句动态顺序逐句的边解释边执行的过程,完成翻译工作的程序称为解释程序。2、什么叫“遍”?指对源程序或源程序的中间形式(如单词,中间代码)从头到尾扫描一次,并作相应的加工处理,称为一遍。3、简述编译程序的基本过程的任务。编译程序的工作是指从输入源程序开始到输出目标程序为止的整个过程,整个过程可以划分

3、5个阶段。词法分析:输入源程序,进行词法分析,输出单词符号。语法分析:在词法分析的基础上,根据语言的语法规则把单词符号串分解成各类语法单位,并判断输入串是否构成语法正确的“程序”。中间代码生成:按照语义规则把语法分析器归约(或推导)出的语法单位翻译成一定形式的中间代码。优化:对中间代码进行优化处理。目标代码生成:把中间代码翻译成目标语言程序。4、编译程序与解释程序的区别?编译程序生成目标程序后,再执行目标程序;然而解释程序不生成目标程序,边解释边执行。5、有人认为编译程序的五个组成部分缺一不可,这种看法正确吗?编译程序的5个阶段中,词法分析,语法分析,语义分析和代码生成生成是必须完成的。而中间

4、代码生成和代码优化并不是必不可少的。优化的目的是为了提高目标程序的质量,没有这一部分工作,仍然能够得到目标代码。6、编译程序的分类 目前基本分为:诊断编译程序,优化编译程序,交叉编译程序,可变目标编译程序。 第2章 高级语言及其语法描述1(P36)令文法为N DNDD 0129 (1)文法描述的语言L(G)是什么?(2)给出句子34,568的最左推导和最右推导。答:(1) L(G)=aa为可带前导0的正整数或L(G)=(0129)+ 或 L(G)=aa为数字串(2)最左推导:NNDDD3D34NNDNDDDDD5DD56D568最右推导:NNDN4D434NNDN8ND8N68D685682*

5、写出一个文法,使其语言是奇数集,且每个奇数是不以0开头。答:S CAB|B (考虑了正负号)A 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | AA | A0 | eB 1|3|5|7|9C +|-|e或:(未考虑正负号)S B | ABB 1 | 3 | 5 | 7 | 9A AD | NN 2 | 4 | 6 | 8 | BD 0 | N或:(未考虑正负号)S C | ABCC 1 | 3 | 5 | 7 | 9A 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9B BA | B0 |e2.(P36, 8)令文法为 E TE+TE-TT FT*FT

6、/FF (E)i(1)给出该文法的VN、VT和S。 (2)给出i+i*i,i*(i+i)的最左推导和最右推导。(3)给出i+i+i,i+i*i的语法树。答:(1)VN = E, T, F VT = +, -, *, /, (, ), i S = E(2)最左推导EE+TT+TF+Ti+Ti+T*Fi+F*Fi+i*Fi+i*iETT*FF*Fi*Fi*(E)i*(E+T)i*(T+T)i*(F+T)i*(i+T)i*(i+F)i*(i+i)最右推导EE+TE+T*FE+T*iE+F*iE+i*iT+i*iF+i*ii+i*iETT*FT*(E)T*(E+T)T*(E+F)T*(E+i)T*(T

7、+i)T*(F+i)T*(i+i)F*(i+i)i*(i+i) 构造语法树 E 最左推导构造语法树 E + T E + T i T i i3.(P36, 9)证明下面的文法是二义的:S iSeS | iS i答:对于句子iiiei有两棵不同的语法树。因此该文法是二义的。 S iSeS iiSeS iiieS iiiei S iS iiSeS iiieS iiiei第3章 词法分析1设M=(x,y,a,b,d,x,y)为一个非确定有限自动机NFA M,其中d定义如下:d(x,a)=x,y d(x,b)=yd(y,a)=f d(y,b)=x,y试构造其相应的最小化的确定有限自动机DFA M。答:由

8、d定义可知d(x,a),d(y,b)均为多值函数,所以是一个非确定有限自动机。(1)根据d函数值,先构造NFA M(2)确定化: 构造DFA M的转换矩阵:IIaIbx x,y y x,y x,y x,y y x,y 确定DFA M的初始状态和终态:(a)转换矩阵中I列的第一个状态为DFA M的初始状态结点。(b)含有y状态的子集均为DFA M的终态结点(、为终态结点)。 根据DFA M的转换矩阵画出对应的状态转换图:(3)最小化: 首先将其划分成终态集2,3和非终态集1 2,3a=2 2,3, 2,3b=2 2,3因此2,3已是不可再区分的,所以该DFA M已是最小化的。2. (P64,7(

9、1))构造正规式1(01)*101相应的DFA M。答:(1)构造NFA M。XY 1(01)*101 X3514Y 1 (01)* 1 0 1 X321542Y 1 e e 1 0 1 01 X12345Y 0 1 e e 1 0 1 1 (2)构造转换矩阵II0I1X 1, 2, 3 1, 2, 3 2, 3 2, 3, 4 2, 3 2, 3 2, 3, 4 2, 3, 4 2, 3, 5 2, 3, 4 2, 3, 5 2, 3 2, 3, 4, Y 2, 3, 4, Y 2, 3, 5 2, 3, 4 (3)由转换矩阵构造DFA M3(P64,12(a))将下图所示的NFA M转换为

10、等价的DFA M,并将该DFA最小化。答:该有限自动机状态0输入同一字符a时到达两个不同的结点,所以是NFA。(1)构造转换矩阵IIaIb0 0,1 1 0,1 0,1 1 1 0 (2)由转换矩阵构造DFA M123 a a b a b(3)将DFA M最小化 将DFA M的状态划分为非终态集3和终态集1,2 对每一个子集及每一个aS进行考察;1,2a = 2 1,21,2b = 3 3因此1,2是不可区分的,所以最终状态为: 1,2,3构造最小化的DFA M:12,3 a b a 4. (P64,12(b)将下图所示的NFA M转换为等价的DFA M,并进行最小化。答:从图上可知该图已经是DFA M,先只需将其最小化。首先划分为两个集合:0,1和2,3,4,52,3,4,5a = 1,3,0,5,划分为:2,4和3,52,4a = 1,0

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号