账号: 密码:
首页  |  宏观指导  |  出版社天地  |  图书代办站  |  教材图书信息 |  教材图书评论 |  在线订购 |  教材征订
  图书分类 - 中图法分类  专业分类  用途分类  自分类  制品类型  读者对象  版别索引 
搜索 新闻 图书 ISBN 作者 音像 出版社 代办站 教材征订
购书 请登录 免费注册 客服电话:010-62510665 62510769
图书查询索引 版别索引 分类索引 中图法分类 专业分类 用途分类 制品类型 读者对象 自分类 最新 畅销 推荐 特价 教材征订
综合查询
编译原理教程(第三版) - 中国高校教材图书网
相关类别图书
作 者:胡元义
出版社:西安电子科技大学出版社
用 途:大学本科以上教材
中 图: 自动化技术、计算机技术
专 业:计算机/网络>软件工程/软件技术
制 品:图书
读 者:普通读者
最新可供书目

战争与文明:从路易十四到拿破仑

中国人民大学出版社


一本书读懂30部管理学经典

清华大学出版社


算法传播十讲

苏州大学出版社


人文职场英语(第2版)学生用书

上海外语教育出版社


数字时代的银龄行动——亚太地区老年人数字素养与技能现状调研

国家开放大学出版社

书名: 编译原理教程(第三版)
ISBN:978–7–5606–2463–1 条码:
作者: 胡元义  相关图书 装订:平装
印次:1-1 开本:16开
定价: ¥23.00  折扣价:¥21.85
折扣:0.95 节省了1.15元
字数: 359千字
出版社: 西安电子科技大学出版社 页数:
发行编号:2755003-9 每包册数:
出版日期: 2010-11-01
小团购 订购 咨询 推荐 打印 放入存书架 相关评论

内容简介:
内 容 简 介
本书系统地介绍了编译程序的设计原理及实现技术,主要内容包括:绪论、词法分析、语法分析、语义分析和中间代码生成、代码优化、目标程序运行时存储空间的组织、目标代码生成、符号表与错误处理等。
在内容的组织上,本书强调知识的实用性,将编译的基本理论与具体的实现技术有机地结合起来,既注重了理论的完整性,化繁为简,又将理论融于具体的实例中,化难为易,以达到准确、清楚地阐述相关概念和原理的目的。本书注重各章节对理论阐述的条理性,书中给出的例子也具有较强的实用性与连贯性,使读者对编译的各个阶段有一个全面、直观的认识。本书采用的算法全部由C语言描述,各章均附有习题。
本书可作为计算机本科专业的教材,也可作为计算机软件工程人员的参考资料。

作者简介:
 
章节目录:
目 录

第一章 绪论 1

1.1 程序设计语言和编译程序 1

1.2 编译程序的历史及发展 3

1.3 编译过程和编译程序结构 4

1.4 编译程序的开发 5

1.5 构造编译程序所应具备的知识内容 6

习题一 8



第二章 词法分析 9

2.1 词法分析器的设计方法 9

2.1.1 单词符号的分类与输出形式 9

2.1.2 状态转换图 10

2.2 一个简单的词法分析器示例 12

2.2.1 C语言子集的单词符号表示 12

2.2.2 C语言子集对应的状态转换图 12

2.2.3 状态转换图的实现 13

2.3 正规表达式与有限自动机简介 16

2.3.1 正规表达式与正规集 16

2.3.2 有限自动机 17

2.4 正规表达式到有限自动机的构造 20

2.4.1 由正规表达式构造等价的非确定有限自动机(NFA) 20

2.4.2 NFA的确定化 21

2.4.3 确定有限自动机(DFA)的化简 22

2.4.4 正规表达式到有限自动机构造示例 24

2.5 词法分析器的自动生成 28

习题二 30



第三章 语法分析 33

3.1 文法和语言 33

3.1.1 文法和语言的基本概念 33

3.1.2 形式语言分类 36

3.1.3 正规表达式与上下文无关文法 38

3.2 推导与语法树 39

3.2.1 推导与短语 39

3.2.2 语法树与二义性 40

3.3 自顶向下的语法分析 44

3.3.1 递归下降分析法 44

3.3.2 LL(1)分析法 52

3.4 自底向上的语法分析 58

3.4.1 自底向上分析原理 58

3.4.2 算符优先分析法 60

3.5 规范归约的自底向上语法分析方法 70

3.5.1 LR分析器的工作原理 70

3.5.2 LR(0)分析器 73

3.5.3 SLR(1)分析器 78

3.5.4 LR(1)分析器 81

3.5.5 LALR分析器 86

3.5.6 二义文法的应用 88

*3.5.7 LR分析器应用与拓展 92

习题三 93



第四章 语义分析和中间代码生成 101

4.1 概述 101

4.1.1 语义分析的概念 101

4.1.2 语法制导翻译方法 101

4.2 属性文法 103

4.2.1 文法的属性 103

4.2.2 属性文法 103

4.3 几种常见的中间语言 105

4.3.1 抽象语法树 105

4.3.2 逆波兰表示法 105

4.3.3 三地址代码 107

4.4 表达式及赋值语句的翻译 110

4.4.1 简单算术表达式和赋值语句的翻译 110

4.4.2 布尔表达式的翻译 111

4.5 控制语句的翻译 116

4.5.1 条件语句if的翻译 116

4.5.2 条件循环语句while的翻译 118

4.5.3 三种基本控制结构的翻译 119

4.5.4 多分支控制语句case的翻译 124

4.5.5 语句标号和转移语句的翻译 126

4.6 数组元素的翻译 126

4.6.1 数组元素的地址计算及中间代码形式 127

4.6.2 赋值语句中数组元素的翻译 127

4.6.3 数组元素翻译示例 128

4.7 过程或函数调用语句的翻译 131

4.7.1 过程或函数调用的方法 131

4.7.2 过程或函数调用语句的四元式生成 132

4.8 说明语句的翻译 133

4.8.1 变量说明的翻译 133

4.8.2 数组说明的翻译 134

4.9 递归下降语法制导翻译方法简介 134

习题四 136



第五章 代码优化 139

5.1 局部优化 139

5.1.1 基本块的划分方法 139

5.1.2 基本块的DAG方法 140

5.1.3 用DAG进行基本块的优化处理 144

5.1.4 DAG构造算法的进一步讨论 145

5.2 循环优化 146

5.2.1 程序流图与循环 146

5.2.2 循环的查找 148

5.2.3 循环优化 152

*5.3 全局优化概述 160

5.3.1 到达-定值与引用-定值链 160

5.3.2 定值-引用链(du链) 164

5.3.3 写传播 167

*5.4 代码优化示例 170

习题五 173



第六章 目标程序运行时存储空间的组织 177

6.1 静态存储分配 177

6.2 简单的栈式存储分配 178

6.2.1 栈式存储分配与活动记录 179

6.2.2 过程的执行 181

6.3 嵌套过程语言的栈式实现 183

6.3.1 嵌套层次显示(DISPLAY)表和活动记录 183

6.3.2 嵌套过程的执行 184

6.3.3 访问非局部名的另一种实现方法 185

6.4 堆式动态存储分配 189

6.4.1 堆式存储的概念 189

6.4.2 堆式存储的管理方法 189

*6.5 参数传递补遗 191

6.5.1 参数传递的方法 191

6.5.2 不同参数传递方法比较 192

习题六 194



第七章 目标代码生成 196

7.1 简单代码生成器 196

7.1.1 待用信息与活跃信息 197

7.1.2 代码生成算法 199

7.1.3 寄存器分配 200

7.1.4 源程序到目标代码生成示例 202

*7.2 汇编指令到机器代码翻译概述 204

习题七 210



第八章 符号表与错误处理 212

8.1 符号表 212

8.1.1 符号表的作用 212

8.1.2 符号表的组织 213

8.1.3 分程序结构语言符号表建立 214

8.1.4 非分程序结构语言符号表建立 217

8.1.5 常用符号表结构 218

8.1.6 符号表内容 219

8.2 错误处理 219

8.2.1 语法错误校正 220

8.2.2 语义错误校正 226

习题八 227

附录1 8086/8088指令码汇总表 229

附录2 8086/8088指令编码空间表 234

参考文献 236

精彩片段:
 
书  评:
前 言

计算机语言之所以能由单一的机器语言发展到现今的数千种高级语言,就是因为有了编译技术。编译技术是计算机科学中发展得最迅速、最成熟的一个分支,它集中体现了计算机发展的成果与精华。

编译原理是计算机专业的一门核心课程,在计算机本科教学中占有十分重要的地位。编译原理课程具有很强的理论性与实践性,读者学习起来普遍感到内容抽象、不易理解。为此,本书采取由浅入深、循序渐进的办法介绍编译原理的基本概念和实现方法。在内容的组织上,本书将编译的基本理论与具体的实现技术有机地结合起来,既注重了理论的完整性,化繁为简,又将理论融于具体的实例中,化难为易,以达到准确、清晰地阐述相关概念和原理的目的。本书注重各章节对理论阐述的条理性,书中给出的例子也具有较强的实用性与连贯性,使读者对编译的各个阶段有一个全面、直观的认识,从而透彻地领悟编译原理的精髓。本书采用的算法全部用C语言描述,文法也尽可能采用C语言文法。

  本书共分八章。第一章简要介绍了编译的基本概念。第二章介绍了词法分析的相关内容,主要涉及正规表达式与有限自动机。第三章主要介绍语法分析,首先简要地介绍了文法的有关概念,然后介绍了自顶向下语法分析方法——递归下降分析法和LL(1)分析法,最后介绍了自底向上语法分析方法——算符优先分析法和LR分析法。第四章介绍了语法制导翻译与中间代码生成的有关内容,给出了如何在语法分析的同时进行语义加工并产生出中间代码的方法。第五章介绍了代码优化的有关内容,主要涉及基本块优化和循环优化;此外,还增加了“全局优化概述”一节,以便读者对优化代码有一个全面、完整的了解。第六章介绍了程序运行时存储空间的组织。第七章讨论目标代码生成的有关内容,讲述了如何由中间代码产生出最终目标代码。第八章简要地介绍了符号表的组织与错误处理的方法。书中带“*”的章节可以不讲或选讲。

  为了便于读者正确理解有关概念,各章还配有一定数量的习题。这些习题大多选自本科生和研究生的考试试题,也包括作者结合多年教学实践经验设计出来的典型范例,力求使读者抓住重点、突破难点,进一步全面、深入地巩固所学知识。

由于水平所限,书中难免存在一些缺点和不足之处,恳请广大读者批评指正。





                        编 者

                        2010年3月







 

               第 二 版 前 言





  计算机语言之所以能由单一的机器语言发展到现今的数千种高级语言,就是因为有了编译技术。编译技术是计算机科学中发展得最迅速、最成熟的一个分支,它集中体现了计算机发展的成果与精华。

  编译原理是计算机专业的一门核心课程,在计算机本科教学中占有十分重要的地位。编译原理课程具有很强的理论性与实践性,读者学习起来普遍感到内容抽象、不易理解。为此,本书采取由浅入深、循序渐进的办法介绍编译原理的基本概念和实现方法。在内容的组织上,本书将编译的基本理论与具体的实现技术有机地结合起来,既注重了理论的完整性,化繁为简,又将理论融于具体的实例中,化难为易,以达到准确、清晰地阐述相关概念和原理的目的。除了各章节对理论阐述的条理性之外,书中给出的例子也具有实用性与连贯性,使读者对编译的各个阶段有一个全面、直观的认识,从而透彻地领悟编译原理的精髓。本书采用的算法全部用C语言描述,文法也尽可能采用C语言文法。

  本书共分八章。第一章简要介绍了编译的基本概念。第二章介绍了词法分析的有关内容,主要涉及正规表达式与有限自动机。第三章主要介绍语法分析,首先简要地介绍了文法的有关概念,然后介绍了自上而下语法分析方法——递归下降分析法和LL(1)分析法,最后介绍了自下而上语法分析方法——算符优先分析法和LR分析法。第四章介绍了语法制导翻译与中间代码生成的有关内容,给出了如何在语法分析的同时进行语义加工并产生出中间代码的方法。第五章介绍了代码优化的有关内容,主要涉及基本块优化和循环优化。第六章介绍了程序运行时存储空间的组织。第七章讨论目标代码生成的有关内容,讲述了如何由中间代码产生出最终的目标代码。第八章简要地介绍了符号表的组织与错误处理的方法。书中带“*”的章节可以不讲或选讲。

  为了便于读者正确理解有关概念,各章还配有一定数量的习题。这些习题大多选自本科生和研究生的考试试题,也包括作者结合多年教学实践经验设计出来的典型范例,力求使读者抓住重点、突破难点,进一步全面、深入地巩固所学知识。书中习题的解答在作者的另一本教学辅导书《<编译原理教程>习题解析与上机指导(第二版)》(西安电子科技大学出版社)中给出。

  本书在第一版的教学实践基础上,综合使用本教材师生的反馈意见,对原教材内容进行了修编。由于反馈意见对原教材的整体结构评价较好,因而此次只对本书的内容进行了局部修改,以使所讲授的内容更加清晰和翔实,有益于对编译理论的理解和掌握。

  由于作者水平所限,书中难免存在某些缺点和错误,恳请广大读者批评指正,同时对关心本教材的读者表示衷心的感谢!



编 者

2006年4月









             第 一 版 前 言





  计算机语言之所以能由单一的机器语言发展到现今的数千种高级语言,就是因为有了编译技术。编译技术是计算机科学中发展得最迅速、最成熟的一个分支,它集中体现了计算机发展的成果与精华。

  编译原理是计算机专业的一门核心课程,在计算机本科教学中占有十分重要的地位。编译原理课程具有很强的理论性与实践性,使读者学习起来普遍感到内容抽象、不易理解。本书采取由浅入深、循序渐进的办法介绍编译原理的基本概念和实现方法。在内容的组织上,本书将编译的基本理论与具体的实现技术有机地结合起来,既注重了理论的完整性,化繁为简,又将理论融于具体的实例中,化难为易,以达到准确、清晰地阐述相关概念和原理的目的。除了各章节对理论阐述的条理性之外,书中给出的例子也具有实用性与连贯性,使读者对编译的各个阶段有一个全面、直观的认识,从而透彻地领悟编译原理的精髓。本书采用的算法全部用C语言描述,文法也尽可能采用C语言文法。

  本书共分八章。第一章简要介绍了编译的基本概念。第二章介绍了词法分析的有关内容,主要涉及正规表达式与有限自动机。第三章主要介绍语法分析,首先简要地介绍了文法的有关概念,然后介绍了自上而下语法分析方法——递归下降分析法和LL(1)分析法,最后介绍了自下而上语法分析方法——算符优先分析法和LR分析法。第四章介绍了语法制导翻译与中间代码生成的有关内容,给出了如何在语法分析的同时进行语义加工并产生出中间代码的方法。第五章介绍了代码优化的有关内容,主要涉及基本块优化和循环优化。第六章介绍了程序运行时存储空间的组织。第七章讨论目标代码生成的有关内容,讲述了如何由中间代码产生出最终的目标代码。第八章简要地介绍了符号表的组织与错误处理的方法。书中带“*”的章节可以不讲或选讲。

为了便于读者正确理解有关概念,各章还配有一定数量的习题。这些习题大多选自本科生和研究生的考试试题,也包括作者结合多年教学实践经验设计出来的典型范例,力求使读者抓住重点、突破难点,进一步全面、深入地巩固所学知识。书中习题的解答在作者的另一本教学辅导书《<编译原理教程>习题解析与上机指导》(西安电子科技大学出版社)中给出。

由于水平所限,书中难免存在一些缺点和错误,恳请广大读者批评指正。



编 者

2003年3月

其  它:
 

专业分类
经济学  公共课与文化课  政治法律  教育学  文学艺术  历史学  理学  工学  农学  医学  计算机/网络  管理学  其他  外语  哲学
用途分类
大学本科教材 大学本科以上教材 大学教学参考书 考研用书 自学考试教材 高职高专教材 中职、中专类教材 中小学教材、教辅
电大用书 学术专著 考试辅导类图书 工具书 培训教材 其他
中图法分类
医药、卫生  语言、文字  工业技术  交通运输  航空、航天  环境科学、安全科学  综合性图书  文学  艺术  历史、地理  自然科学总论  数理科学和化学  天文学、地球科学  生物科学  哲学、宗教  社会科学总论  政治、法律  军事  经济  马克思主义、列宁主义、毛泽东思想、邓小平理论  文化、科学、教育、体育  农业科学
版别索引
北京大学出版社 北京师范大学出版社 清华大学出版社 中国人民大学出版社
北京工业大学出版社 北京大学医学出版社 北京航空航天大学出版社 北京交通大学出版社
北京理工大学出版社 北京体育大学出版社 北京邮电大学出版社 中央音乐学院出版社
北京语言大学出版社 对外经济贸易大学出版社 国家开放大学出版社 首都经济贸易大学出版社
首都师范大学出版社 外语教学与研究出版社
更多...
网上购书指南
一、我的账户
用户注册
用户登录
修改用户密码
修改个人资料
二、查询图书
快速查询
分类查询
综合查询
三、订购图书
第一步点击“订购”按钮
第二步确定收货人信息
第三步提交订单
存书架
四、邮购方式
普通邮寄
特快专递
五、付款方式
支付宝
邮局汇款
六、我的订单
查询订单
修改或取消订单
联系我们

| 我的帐户 | 我的订单 | 购书指南| 关于我们 | 联系我们 | 敬告 | 友情链接 | 广告服务 |

版权所有 © 2000-2002 中国高校教材图书网    京ICP备10054422号-7    京公网安备110108002480号    出版物经营许可证:新出发京批字第版0234号
经营许可证编号:京ICP证130369号    技术支持:云因信息