编译原理课后习题答案.doc

编译原理课后习题答案.doc

ID:11565288

大小:431.00 KB

页数:28页

时间:2018-07-12

编译原理课后习题答案.doc_第1页
编译原理课后习题答案.doc_第2页
编译原理课后习题答案.doc_第3页
编译原理课后习题答案.doc_第4页
编译原理课后习题答案.doc_第5页
资源描述:

《编译原理课后习题答案.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第一章1.典型的编译程序在逻辑功能上由哪几部分组成?答:编译程序主要由以下几个部分组成:词法分析、语法分析、语义分析、中间代码生成、中间代码优化、目标代码生成、错误处理、表格管理。2.实现编译程序的主要方法有哪些?答:主要有:转换法、移植法、自展法、自动生成法。3.将用户使用高级语言编写的程序翻译为可直接执行的机器语言程序有哪几种主要的方式?答:编译法、解释法。4.编译方式和解释方式的根本区别是什么?答:编译方式:是将源程序经编译得到可执行文件后,就可脱离源程序和编译程序单独执行,所以编译方式的效率高,执行速度快;解释方式:在执行时,必须源程序和解释程序同时参与才能运行,其不产生可执行

2、程序文件,效率低,执行速度慢。28第二章1.乔姆斯基文法体系中将文法分为哪几类?文法的分类同程序设计语言的设计与实现关系如何?答:1)0型文法、1型文法、2型文法、3型文法。2)2.写一个文法,使其语言是偶整数的集合,每个偶整数不以0为前导。答:ZàSME

3、BSà1

4、2

5、3

6、4

7、5

8、6

9、7

10、8

11、9Màe

12、D

13、MDDà0

14、SBà2

15、4

16、6

17、8Eà0

18、B3.设文法G为:NàD

19、NDDà0

20、1

21、2

22、3

23、4

24、5

25、6

26、7

27、8

28、9请给出句子123、301和75431的最右推导和最左推导。答:NÞNDÞN3ÞND3ÞN23ÞD23Þ123NÞNDÞNDDÞDDDÞ1DDÞ12DÞ123NÞNDÞN1

29、ÞND1ÞN01ÞD01Þ301NÞNDÞNDDÞDDDÞ3DDÞ30DÞ301NÞNDÞN1ÞND1ÞN31ÞND31ÞN431ÞND431ÞN5431ÞD5431Þ75431NÞNDÞNDDÞNDDDÞNDDDDÞDDDDDÞ7DDDDÞ75DDDÞ754DDÞ7543DÞ754314.证明文法SàiSeS

30、iS

31、i是二义性文法。答:对于句型iiSeS存在两个不同的最左推导:SÞiSeSÞiiSesSÞiSÞiiSeS所以该文法是二义性文法。5.给出描述下面语言的上下文无关文法。(1)L1={anbnci

32、n>=1,i>=0}(2)L2={aibj

33、j>=i>=1}(3)L3={a

34、nbmcmdn

35、m,n>=0}答:(1)SàABAàaAb

36、abBàcB

37、e(2)SàASb

38、ab28Aàa

39、e(1)SàaSd

40、A

41、eAàbAc

42、e6.设计一个最简的DFAM,使其能够识别所有的被3整除的无符号十进制整数。答:7.设计一个DFA,使其能够接受被4整除的二进制数。答:8.写出表达下列各项的正则表达式。(1)二进制数且为5的倍数。(2)Σ={a,b,c},第一个a位于第一个b之前的字符串。(3)Σ={a,b,c},包含偶数个a的字符串。(4)Σ={0,1},不包含11子串的字符串。答:(1)可以先画出相应的有限自动机:添加新的开始状态S和终止状态T:28根据以上自动机,列

43、出以下方程:①S=A②A=0A+1B+T③B=0C+1D④C=0E+1A⑤D=0B+1C⑥E=0D+1E解以上方程组:⑥ÞE=1*0D②ÞA=0*1B+0*T⑥代入④ÞC=01*0D+1A⑤代入④ÞC=01*00B+01*01C+1AÞC=xB+yA其中x=(01*01)*01*00y=(01*01)*1⑤代入③ÞB=0C+10B+11CÞB=(0

44、11)C+10BÞB=(10)*(0

45、11)C将C=xB+yA代入上式ÞB=uB+vAÞB=u*vA其中u=(10)*(0

46、11)xv=(10)*(0

47、11)y将B=u*vA代入②ÞA=0*1u*vA+0*TÞA=(0*1u*v)*0*T将

48、A代入①ÞS=(0*1u*v)*0*T串(0*1u*v)*0*即为所求。(2)该题目理解为:至少有一个a和一个b,且a出现在b的前面(可以有间隔),则答案为:c*a(a

49、c)*b(a

50、b

51、c)*(3)((b

52、c)*a(b

53、c)*a)*(b

54、c)*(a(b

55、c)*a

56、b

57、c)*(4)(0

58、10)*(1

59、e)28第三章1.词法分析器的功能是什么?答:读源程序的字符序列,逐个拼出单词,并构造相应的内部表示TOKEN;同时检查源程序中的词法错误。1.试分析分隔符(空格、跳格及回车等)对词法分析的影响。答:空格、跳格、回车等分隔符号对词法分析不起作用,可以删除。但是回车符号可以用于错误定位,所以

60、在删除回车符号前需要统计回车的个数。2.给出识别C语言全部实型常数的自动机。答:(+

61、-

62、e)([1-9][0-9]*

63、0)(.[0-9][0-9]*

64、e)(E(+

65、-

66、e)[0-9][0-9]*)4.写出识别C语言中所有单词的LEX程序。答:L=[A-Z]

67、[a-z]D=[0-9]D1=[1-9]%%(L

68、_)(L

69、D

70、_)*{return(1);}D1D*{return(2);}+{return(3);}……28第四章1.设有如下文法G[S

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。