编译原理(第3版)王生原课后习题答案.docxVIP

编译原理(第3版)王生原课后习题答案.docx

  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文档。上传文档
查看更多
编译原理(第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 | T T→T*F | F F→(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-A S-B B-bB B-b A-aAb A-a 答: 根据分析表,aabb经过分析器后可以得到如下推导过程: 状态栈 符号栈 输入字符串 备注 S0 * aabb (初始状态) S0,A1 a* abb S0,A1,A5 aa* bb S0,B2,B4,B7,B8 aa*Bb* b S0,A1,A5,A6,B9,B11 aab*Bb* b S0,A1,A5,A6,B9,B11,B4,B7 aabb*B* 状态5无法终止 S0,A1 a*B 匹配失败,语法错误 参考内容:《编译原理及实

文档评论(0)

专业写各类报告,论文,文案,讲稿等,专注新能源方面

1亿VIP精品文档

相关文档