编译原理习题解答参考编译原理习题解答参考.docVIP

编译原理习题解答参考编译原理习题解答参考.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编译原理习题解答参考编译原理习题解答参考

编译原理习题解答参考 1.计算机执行用高级语言编写的程序的途径有哪些?它们之间主要区别是什么? 答:计算机执行用高级语言编写的程序途径有两种:解释方式和编译方式。解释方式下直接对源程序进行解释执行,并得到计算结果,特点是计算机并不事先对高级语言进行全盘翻译将其全部变为机器代码,而是每读入一条语句,就用解释器将其翻译为机器代码,予以执行,然后再读入下一条高级语句,翻译为机器代码,再执行,如些反复,即边翻译边执行;编译方式下对源程序的执行需要经过翻译阶段和运行阶段才能得到计算结果,其特点是计算机事先对高级语言进行全盘翻译将其全部变为机器代码,再统一执行,即先翻译后执行。简单来说解释方式不生成目标代码,编译方式生成目标代码。 2.名字与标识符的区别是什么? 答:在程序设计语言中,凡是以字母开头的有限个字母数字的序列都是标识符。当给予一个标识符确切的含义后,该标识符就叫做一个名字。标识符是一个没有意义的字符序列,而名字有确切的含义,一个名字代表一个存储单元,该单存放该名字的值。此外,名字还有属性(如类型和作用域等)。如objectint, 作为标识符,它没有任何含义,但作为名字,它可能表示变量名、函数名等。 3.许多编译程序在真正编译之前都要进行预处理操作,请问预处理的目的是什么?预处理主要做哪些工作? 答:在源程序中有时存在多个连续的空格、回车、换行及注释等编辑性字符,它们不是程序的必要组成部分,它们的意义只是改善程序的易读性和易理解性。为了降低编译程序的处理负担,许多编译程序在编译之前通过预处理工作将这些部分删除。 预处理的主要工作是对源程序进行格式方面的规范化处理,如去掉注释、将回车换行变成空格、将多个空格替换为一个空格等。 P35 4,6,7,8,9,11(1,2) 4.答:256,8 6.(1)答:所产生的语言是:所有正整数集,且可以以0打头; 0127,34,568的推导略。 7.答:S→ABD|AD|D A→2|4|6|8|D B→0|A|B0|BA D→1|3|5|7|9 8.答:略。 9.答:文法对于句子iiieii存在两棵不同的语法树,所以该文法是二义性文法。 11.(1)答:S→AB|A S→AB A→aAb|ab A→aAb|ab B→Bc|c B→Bc|c|ε (2)答:S→AB|B A→aA|a B→bBc|bc 1.化简文法G[S]: S→Be B →Ce|Af A →Ae|e C →Cf D →f 答:S→Be B→Af A→Ae|e 2.给出描述语言L(G)={a2nbn|n≥1}的2型文法。 答:语言中语句的特点是a的个数是b的个数的2倍,且a全部在句子的前部分,b全部在句子的后部分,2型文法为:S→aab|aaSb 3.构造一个文法,使其描述的语言是不能被5整除的偶整数集合。 S→(+|-)AB|B A→0|1|2|3|4|5|6|7|8|9|AA B→2|4|6|8 如果不以0打头,则文法描述如下: S→(+|-)(AD|D) A→AB|C B→0|C|BB C→1|2|3|4|5|6|7|8|9 D→2|4|6||8 P64 7(1),8(123)12 7.答:1|(0|1)*101 1)NFA如下: 2)确定化: I I1 I0 0 {X} {1,3,2} Φ 1 {1,3,2} {3,2,4} {3,2} 2 {3,2,4} {3,2,4} {3,2,5} 3 {3,2} {3,2,4} {3,2} 4 {3,2,5} {3,2,4,Y} {3,2} 5 {3,2,4,Y} {3,2,4} {3,2,5} 3)DFA自己画 8.(1)(0|1)*01 (2)(0|1|…… |9)*(0|5) (3)(00|11)*(10|01) 12.答:a图:首先用子集法确定化: I Ia Ib A {0} {0,1} {1} B {0,1} {0,1} {1} C {1} {0} Φ 用ABC表示三个状态,则确定化后的自动机如下所示: 下面用分割法将其最小化: 首先得到两个子集:非终态K1={A,C}和终态K2={B},由于状态A和状态C输入a后分别到达状态B和A,故状态A和状态C不等价,K1不能再分割,所以该DFA已经是最小化的DFA了。 (b)答:观察原图已经是DFA了,最小化如下: 首先得到两个子集:非终态和终态:{2,3,4,5}和{0,1} {0,1}a={1}∈{0,1} {0,1

您可能关注的文档

文档评论(0)

pfenejiarz + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档