高级搜索  |  搜索帮助
最近的浏览历史
购买此书的人还购买过
书  名:编译原理实用教程(第二版)
  • 作  者: 温敬和
  • 出版时间: 2013-04-01
  • 出 版 社: 清华大学出版社
  • 字  数: 341 千字
  • 印  次: 2-1
  • 印  张: 14
  • 开  本: 16开
  • ISBN: 9787302312437
  • 装  帧: 平装
  • 定  价:¥25.00
电子书价:¥17.50 折扣:70折 节省:¥7.50 vip价:¥17.50 电子书大小:21.67M
配套资源下载:
  • 名称
  • 说明
  • 权限
  • 文件大小
  • 点击图标下载
  • 图书样章
  • 所有用户
  • 256K
共有商品评论0条 查看评论摘要
内容简介
  全书共分7章,主要介绍编译程序的基本原理和实现方法。内容包括:词法分析,形式语言和自动机的基本概念,语法分析,符号表和静态内存分配,语法制导翻译和中间代码产生,目标代码生成。本书还介绍了作者本人的一些工作成果,如LR分析法在词法分析器自动构造中的应用,语法制导翻译在汇编程序自动构造中的应用。为了方便读者学习,各章都安排了一定数量的习题,并配有习题答案。
  本书附录B中的“课程实习指导”向读者提供了一个较为完整的、切实可用的“编译原理”课程实习方案,并附有参考程序,可供有关教师选用或参考。
  本书可作为本科院校计算机专业“编译原理”课程的教材,也可供有关教师、研究生以及从事计算机软件设计和开发人员参考。
前言
  1982年2月本人毕业于上海交通大学,2010年1月退休,在上海第二工业大学工作了近三十年。在此期间,主要从事“编译程序”和“算法”这两门学科的教学和科研。2005年4月清华大学出版社出版了由本人编著的《编译原理实用教程》,该书至今仍用于我校和国内其他普通高等院校“编译原理”课程的教学。该书从脱稿至今已近十年,先后共印刷了1万册左右。虽然印刷的数量不大,但是90%是外校师生所使用的,说明书的质量得到了同行的认可。
  在第2版中,书的章节基本没有变化,仅删除了原书中的5.10.3小节(5.10.3 LR分析控制程序的修改),增加了6.11节(6.11 自上而下分析制导翻译概述)。做出上述调整,主要考虑用于词法分析的LR分析控制程序修改不大,一是增加了token数组,用于记录构成单词的字符。在执行移进操作时,除完成规定动作外,还应将当前字符移入token数组;二是把“出错”理解为找到单词尾。对于熟悉LR分析控制程序工作原理的读者,在理解上不会有困难。在后继章节中,对于用于词法分析的LR分析控制程序有详细介绍,没有必要单独列出。为了完整,在6.11节简略讨论了自上而下分析制导翻译技术。原书中的附录A和附录B合并为新书的附录A。原书的附录C删除,改为下载文件。原书的附录D改为新书的附录B.
  在第2版中,各章节的知识点没有变化,增加了算法伪代码描述,对原书各章节中的所有源程序都做了比较大的修改。在原书中,算法除文字简单描述外,基本用源程序表达,这样对算法的描述和理解有可能受到语言细节的束缚。在本书中,增加了算法伪代码描述,这样可避免语言的限制,更容易表达算法的基本思想。考虑有些读者编程经验不足,源程序仍保留了下来,但在编排上做了改进,使其更容易阅读和理解。在本书中出现的源程序,除附录B中两个程序外,都可以从清华大学出版社指定网站下载。另外,由本人编写的“编译原理”课程电子教案和试卷集锦可以从“中国高等学校教学资源网”下载。
  在写第1版时,主要考虑程序的正确性。在再版中,力求使程序写得更简洁、更易理解,并且注意前后统一。例如,本书介绍了三个词法分析器,它们是Lex1、Lex2和 Lex3。三个词法分析器都是由预处理程序和扫描器(单词识别程序)两个部分构成。预处理程序是同一个,差异在于如何实现扫描器。Lex1是利用状态转换图来实现的,Lex2是利用确定有限自动机来实现的,而Lex3是利用LR分析法来实现的。扫描器的程序结构大同小异,读者只需关注单词识别时所使用的技术和方法。
  借此机会,向清华大学出版社表示感谢。是清华大学出版社向本人提供了机会,使我能够在退休之后,继续为高等学校计算机教育尽自己微薄之力。继2011年6月的“算法设计与分析”出版之后,这是本人主编的第2本教科书。
  上海第二工业大学计算机与信息学院教师王娜参与了本书各章的编写(包括习题答案),上海第二工业大学成人与继续教育学院教师杨坤参与了各章源程序的编写。

温敬和
2012年秋
目录
第1章 编译系统概述1
习题5
第2章 词法分析6
2.1 词法分析器的设计考虑及手工构造6
2.1.1 单词类型及二元式编码6
2.1.2 源程序的输入及预处理8
2.1.3 基本字的识别和超前搜索10
2.1.4 状态转换图和词法分析器的
手工构造11
2.1.5 词法分析器手工构造实例15
2.2 正规式、自动机及词法分析器的
自动生成18
2.2.1 基本概念19
2.2.2 正规式与正规集20
2.2.3 确定有限自动机22
2.2.4 非确定有限自动机23
2.2.5 NFA的确定化24
2.2.6 正规式的NFA表示26
2.2.7 正规式与确定有限自动机的
等价性27
2.3 词法分析器的自动生成29
2.3.1 自动生成过程概述29
2.3.2 扫描器控制程序工作原理32
2.3.3 扫描器控制程序的实现33
习题38
习题答案39
第3章 程序设计语言的语法描述45
3.1 文法的引入45
3.1.1 语法树45
3.1.2 语法规则和句子推导46
3.1.3 递归规则和递归文法47
3.2 上下文无关文法48
3.2.1 文法和语言49
3.2.2 文法的二义性51
3. 3 文法举例53
习题54
习题答案56
第4章 自上而下的语法分析60
4.1 带回溯的自上而下分析法概述60
4.2 直接左递归的消除61
4.3 不带回溯的自上而下分析法的
基本原理63
4.4 提取左因子66
4.5 first集和follow集66
4.5.1 first集的定义及构造算法66
4.5.2 follow集的定义及构造
算法69
4.6 递归下降分析法71
4.7 预测分析法75
4.7.1 预测分析表的构造75
4.7.2 预测分析控制程序76
4.7.3 预测分析程序讨论81
4.7.4 应用举例83
习题86
习题答案86
第5章 自下而上的语法分析95
5.1 自下而上的语法分析概述95
5.2 LR分析法的基本原理98
5.3 LR(0)项目集规范族的构造102
5.4 有效项目104
5.5 LR(0)分析表的构造104
5.6 SLR(1)分析表的构造107
5.7 LR语法分析器的控制程序110
5.8 二义文法在LR分析法中的应用115
5.9 应用举例117
5.10 LR分析法在词法分析器自动
构造中的应用120
5.10.1 模型语言的词法描述
及SLR分析表120
5.10.2 使用SLR分析表识别单词
的基本原理122
5.10.3 算法描述和程序实现123
5.10.4 LR_LEX中的分析表
最小化128
习题131
习题答案133
第6章 语法制导翻译和中间代码生成139
6.1 语法制导翻译概述140
6.2 符号表和常数表143
6.3 中间代码144
6.3.1 三元式145
6.3.2 四元式145
6.4 说明语句(简单变量)的翻译147
6.5 整型算术表达式及赋值语句的
翻译148
6.6 混合型算术表达式及赋值语句的
翻译151
6.7 布尔表达式的翻译154
6.8 标号和无条件转移语句的翻译162
6.9 控制语句的翻译164
6.9.1 if-then语句的翻译165
6.9.2 if-then-else语句的翻译166
6.9.3 while-do语句的翻译168
6.9.4 复合语句的翻译170
6.10 小结172
6.11 自上而下分析制导翻译概述172
习题174
习题答案176
第7章 目标代码生成181
7.1 目标计算机的虚拟实现181
7.2 语法制导翻译在汇编程序自动
构造中的应用184
7.2.1 汇编语言文法和分析表
构造184
7.2.2 单词编码表和词法分析186
7.2.3 汇编语言语义和语法制导
翻译188
7.3 从四元式到汇编语言的翻译190
习题197
习题答案197
附录A 虚拟机汇编程序使用说明199
附录B 课程实习指导201
参考文献217
Copyright(C)清华大学出版社有限公司,All Rights Reserved 京ICP备10035462号 联系我们