- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编译原理(第3版)王生原课后习题答案
编译原理是计算机科学中最为重要的一门课程,其内容涵盖了编译程序的结构和设计、语法分析与语义分析、代码生成技术等方面。本文将主要介绍《编译原理(第3版)》王生原课后习题的答案和相关的参考内容。一、第一章1.1 什么是编译程序?编译程序有什么特点?答:编译程序是将高级语言程序转换成等价的目标程序的程序。特点:(1)一次转换、多次执行;(2)面向过程、批处理;(3)逐个处理语言结构;(4)贯穿整个程序的控制连接性;(5)具有开放性、扩充性。参考内容:《编译原理与技术》(第2版),龙书;《编译原理及实践》(第2版),谢路云等。1.2 简述编译程序的工作流程。答:编译程序的工作流程通常分为四个步骤:(1)词法分析:将输入的字符流组成单词符号表。(2)语法分析:生成程序的语法树或分析表。(3)语义分析:进行语义信息检查并生成中间表示。(4)代码生成:按照目标语言的规则生成目标程序。参考内容:《编译器设计》(第2版),龙书。二、第二章2.1 指出下列语句中的关键字:const int b = 10;void main(){ int i; for(i = 0; i b; i++){ printf(%d,i); }}答:const、int、void、main、for、printf。2.2 指出以下 C++ 语言的数据类型:char c;short s;int i;long l;float f;double d;bool b;string str;答:char、short、int、long、float、double、bool、string。三、第三章3.1 画出以下文法的文法分析树:E→E+T | TT→T*F | FF→(E) | id例:(id+id)*id答:参考内容:《编译原理及实践》(第2版),谢路云等;《编译原理:基于模块化方法》(第2版),Andrew W.Appel。3.2 对于以下文法$L=\{ids,m,n,o\}$,请判断$x=(ids,n,m)$是否为一句合法的推导式。S→idS’S’→,S | $答:$x=(ids,n,m)$不是一句合法的推导式,因为$m$后面没有逗号分隔符,不符合文法规则。参考内容:《编译原理:基于模块化方法》(第2版),Andrew W.Appel。四、第四章4.1 简述SLR分析表的构造方法。答:SLR分析表的构造方法如下:(1)构造LR(1)自动机。(2)对状态中每个$LHS-\cdot RHS$,以及在$LHS-\cdot RHS$后面的终结符号b,将[$S_i$,b](i代表状态编号)置于ACTION表的相应位置中。(3)对状态中每个$LHS-\cdot RHS$及后面的符号,将[$S_i$,A](i代表状态编号)置于GOTO表相应的位置中。(4)对状态中的每个$LHS- RHS\cdot$,将规约的产生式的编号(用纯数字标识)j填入表ACTION[$S_i$, a]中的相应位置中。参考内容:《编译原理及实践》(第2版),谢路云等;《编译器设计》(第2版),龙书;4.2 使用SLR分析器解析下面的句子:aabb文法如下:S-AS-BB-bBB-bA-aAbA-a答: 根据分析表,aabb经过分析器后可以得到如下推导过程:状态栈 符号栈 输入字符串 备注S0 * aabb (初始状态)S0,A1 a* abbS0,A1,A5 aa* bbS0,B2,B4,B7,B8 aa*Bb* bS0,A1,A5,A6,B9,B11 aab*Bb* bS0,A1,A5,A6,B9,B11,B4,B7 aabb*B* 状态5无法终止S0,A1 a*B 匹配失败,语法错误参考内容:《编译原理及实
文档评论(0)