第一图书网

编译原理

张素琴 清华大学
出版时间:

2005-2  

出版社:

清华大学  

作者:

张素琴  

页数:

456  

Tag标签:

无  

内容概要

  本书特色:
  这套教材已伴随着计算机科学与技术的飞速发展茁壮成长了二十佘年,获得了国家科学技术进步奖、国家级优秀教材特等奖等29项部级以上奖励,被几百所高校选作教材,教学效果好。现经修订和增加新品种、新内容,基本涵盖了本科生和硕士研究生的主要课程。这套系列教材体系完整、结构严谨、理论结合实际、注重素质培养。
  · 提供一个简单但不失典型性的编译程序,有源码(C和PASCAL两种语言)和分析工具
便于清晰的展示编译程序的基本构成和实现技术。借助这个文本,学生可以使用高级语言扩展该编译程序,也可以利用编译生成工具重新实现。
  · 重点知识点有了典型例题的解析说明。
  ·
针对面向对象语言的语法结构及其语义的特征,着重从类及类的继承结构上,讨论编译实现技术及面向对象技术构造编译程序的思路,便于读者对一般可复用软件体系结构的理解。
  
本书介绍编译系统的一般构造原理、基本实现技术和一些自动构造工具。主要由语言基础知识、词法分析、语法分析、中间代码生成、代码优化、目标代码生成、符号表的构造和运行时存储空间的组织等部分组成。
  
书中在介绍编译程序构造基本原理的同时引入“PL/0语言的编译程序”结构及文本,还引入了LEX、YACC使用方法与实例。
   本书是高等院校计算机科学与技术专业的本科生教材,也可作为教师、研究生蔌软件工程技术人员的参考书。

作者简介

   吕映芝
清华大学计算机系教授,1961年毕业于清华大学数学力学系计算数学专业。主要从事程序设计语言编译原理的教学工作、程序语言结构和自动生成工具的研究工作以及程序设计语言编译原理计算机辅助教学软件的研制和开发工作。

书籍目录

第1章 引论
 1.1 什么是编译程序
 1.2 编译过程和编译程序的结构
  1.2.1 编译过程概述
  1.2.2 编译程序的结构
  1.2.3 编译阶段的组合
 1.3 解释程序和一些软件工具
  1.3.1 解释程序
  1.3.2 处理源程序的软件工具
 1.4 程序设计语言范型
 练习
第2章 pl/0编程程序的实现
 2.1 pl/0语言描述
  2.1.1 pl/0语言的语汉描述图
  2.1.2 pl/0语言文法的ebnf表示
 2.2 pl/0编译程序的结构
 2.3 pl/0编译程序的词法分析
 2.4 pl/0编译程序的语法语义分析
 2.5 pl/0编译程序的目标代码结构和代码生成
 2.6 pl/0编译程序的语法错误处理
 2.7 pl/0编译程序的目标代码解释执行时的存储分配
 练习
第3章 文法和语言
 3.1 文法的直观概念
 3.2 符号和符号串
 3.3 文法和语言的形式定义
 3.4 文法的类型
 3.5 上下文无关文法及其语法树
 3.6 句型的分析
  3.6.1 自上而下的分析方法
  3.6.2 自下而上的分析方法
  3.6.3 句型分析的有关问题
 3.7 有关文法实用中的一些说明
  3.7.1 有关文法的实用限制
  3.7.2 上下文无关文法中的规则
 3.8 典型例题解答
 练习
第4章 词法分析
 4.1 词法分析程序的设计
  4.1.1 词法分析程序与语法分析程序的接口方式
  4.1.2 词法分析程序的输出
  4.1.3 将词法分析工作分离的考虑
 4.2 单词的描述工具
  4.2.1 正规文法
  4.2.2 正规式
  4.2.3 正规文法和正规式的等性
 4.3 有穷自动机
  4.3.1 确定的有穷自动机(dfa)
  4.3.2 不确定的有穷自动机(nfa)
  4.3.3 nfa转换为等价的dfa
  4.3.4 确定有穷自动机的化简
 4.4 正规式和有穷自动机的等价性
 4.5 正规文法和有穷自动机的等价性
 4.6 词法分析程序的自动构造工具
 4.7 典型例题及解答
 练习
第5章 自顶向下语法分析方法
 5.1 确定的自顶向下分析思想
 5.2 ll(1)文法的判别
 5.3 某些非ll(1)文法到ll(1)文法的等价变换
 5.4 不确定的自顶向下分析思想
 5.5 确定的自顶向下分析方法
  5.5.1 递归子程序法
  5.5.2 预测分析方法
 5.6 典型例题及解答
 练习
第6章 自底向上优先分析
 6.1 自底向上优先分析概述
 6.2 简单优先分析法
  6.2.1 优先关系
  6.2.2 简单优先文法的定义
  6.2.3 简单优先分析法的操作步骤
 6.3 算符优先分析法
  6.3.1 直观算符优先分析法
  6.3.2 算符优先文法的定义
  6.3.3 算符优先关系表的构造
  6.3.4 算符优先分析算法
  6.3.5 优先函数
  6.3.6 算符优先分析法的局限性
 6.4 典型例题及解答
 练习
第7章 lr分析
 7.1 lr分析概述
 7.2 lr(0)分析
  7.2.1 可归前缀和子前缀
  7.2.2 识别活前缀的有限自动机
  7.2.3 活前缀及其可归前缀的一般计算方法
  7.2.4 lr(0)项目集规范族的构造
 7.3 slr(1)分析
 7.4 lr(1)分析
  7.4.1 lr(1)项目集族的构造
  7.4.2 lr(1)分析表的构造
 7.5 lalr(1)分析
 7.6 二义性文法在lr分析中的应用
 7.7 语法分析程序的自动构造工具yacc
 7.8 典型例题及解答
 练习
第8章 语法制导翻译和中间代码生成
 8.1 属性文法
 8.2 语法制导翻译概论
  8.2.1 计算语义规则
  8.2.2 s-属性方法和自下而上翻译
  8.2.3 l-属性文法在自上而下分析中的实现
  8.2.4 l-属性文法在自下而上分析中的实现
 8.3 中间代码的形式
  8.3.1 逆波壮大记号
  8.3.2 三元式和树表表示
  8.3.3 四元式
 8.4 简单赋值语句的翻译
 8.5 布尔表达式的翻译
  8.5.1 布尔表达式的翻译方法
  8.5.2 控制语句中布尔表达式的翻译
 8.6 控制结构的翻译
  8.6.1 条件转移
  8.6.2 开关语句
  8.6.3 for循环语句
  8.6.4 出口语句
  8.6.5 goto语句
  8.6.6 过程调用的四元式产生
 8.7 说明语句的翻译
  8.7.1 简单说明语句的翻译
  8.7.2 过程中的说明
 8.8 数组和结构的翻译
  8.8.1 数组说明和数组元素的引用
  8.8.2 结构(记录)说明和引用的翻译
 练习
第9章 符号表
 9.1 符号表的作用和地位
 9.2 符号的主要属性及作用
 9.3 符号表的组织
  9.3.1 符号表的总体组织
  9.3.2 符号表项的排列
  9.3.3 关键字域的组织
  9.3.4 其他域的组织
  9.3.5 下堆链域的组织
 9.4 符号表的管理
  9.4.1 符号表的初始化
  9.4.2 符号的登录
  9.4.3 符号的查找
  9.4.4 符号表的分程序结构层次的管理
第10章 目标程序运行时的存储组织
 10.1 数据空间的三种不同使用方法和管理方法
  10.1.1 静态存储分配
  10.1.2 动态存储分配
  10.1.3 栈式动态存储分配
  10.1.4 堆式动态存储分配
 10.2 栈式存储分配的实现
  10.2.1 简单的栈式存储分配的实现
  10.2.2 嵌套过程语言的栈式实现
  10.2.3 分程序结构的存储管理
 10.3 参数传递
  10.3.1 传值
  10.3.2 传地址
  10.3.3 过程参数
 10.4 过程调用、过程进入和过程返回
  练习
第11章 代码优化
 11.1 优化技术简介
 11.2 局部优化
  11.2.1 基本块的划分
  11.2.2 基本块的变换
  11.2.3 基本块的有向图dag(directed acyclic graph)表示
  11.2.4 dag的应用
 11.3 控制流分析和循环优化
  11.3.1 程序流图
  11.3.2 循环的查找
  11.3.3 循环优化
 11.4 数据流的分析与全局优化
  11.4.1 一些主要的概念
  11.4.2 数据流言程的一般形式
  11.4.3 到达-定值数据流方程
  11.4.4 可用表达式及其数据流方程
  11.4.5 活跃变量数据流方程
  11.4.6 复写传播
  练习
第12章 代码生成
 12.1 代码生成概述
  12.1.1 代码生成程序在编译系统中的位置
  12.1.2 设计代码生成程序的基本问题
 12.2 一个简单的代码生成程序
  12.2.1 计算机模型
  12.2.2 待用信息链表法
  12.2.3 代码生成算法
 12.3 几种常用的代码生成程序的开发方法
  12.3.1 解释性代码生成法
  12.3.2 模式匹配代码生成法
  12.3.3 表驱动代码生成法
 12.4 全局寄存器分配(图着色法)
  12.4.1 概述
  12.4.2 图着色寄存器分配法的相关技术
  12.4.3 示例
 12.5 代码生成程序的自动化构造
  12.5.1 模式匹配与动态规划
  12.5.2 基于语法制导的代码生成程序自动构造技术
  12.5.3 基于语义制导的代码生成程序自动构造技术
  练习
第13章 编译程序的构造
 13.1 编译程序的书写
  13.1.1 编译程序的书写语言与t型图
  13.1.2 编译程序的自展技术
 13.2 可重定向编译程序
  13.2.1 概述
  13.2.2 支持可重定向编译的关键技术
  13.2.3 常用的可重定编译程序
  13.3 gcc的剖析
  13.3.1 gcc的总体结构
  13.3.2 gcc的中间表示
  13.3.3 gcc的机器描述
  13.3.4 gcc的代码生成与机器描述的接口
 13.4 gcc的定制
  13.4.1 gcc的剪裁
  13.4.2 gcc编译程序的安装与配置
 13.5 gcc的优化
  13.5.1 概述
  13.5.2 窥孔优化
  13.5.3 基于机器描述的窥孔优化
  13.5.4 修改gcc源程序的窥孔优化
  练习
第14章 面向对象语言的编译
 14.1 面向对象语言的基本概念
 14.2 面向对象语言语法结构及语义处理的特征
  14.2.1 面向对象语言的类的语法结构及语义
  14.2.2 面向对象语言的有效类、延迟类及延迟成员
  14.2.3 面向对象语言的类属类
  14.2.4 面向对象语言的继承类
 14.3 多态实例变量、多态引用的类型检查及绑定
  14.3.1 实例变量和多态引用
  14.3.2 静态类型检查及动态类型检查
  14.3.3 对象的创建
 14.4 面向对象操作的语义
  14.4.1 类名的属性构造
  14.4.2 类名的属性及其结构
 14.5 类成员名的属性及其结构
  14.5.1 类名的属性及其结构
  14.5.2 类成员名的属性及其结构
 14.6 对象的存储管理及废弃单元回收
  14.6.1 对象的三种存储区组织管理方式
  14.6.2 静态模型和栈式模型废弃单元的回收
  14.6.3 堆式模型废弃单元的回收
  练习
第15章 编译程序的面向对象构造
 15.1 编译程序面向对象构造的基本概念
  15.1.1 编译程序的需求
  15.1.2 编译程序的分解
  15.1.3 类的构造层次
  15.1.4 类的特性定义
 15.2 构造编译程序的面向对象类库
  15.2.1 对传统编译程序构造中软件复用的分析
  15.2.2 面向对象编译类库的地位
  15.2.3 语言编译论的面向对象论域分析
 15.3面向对象编译程序的符号表构造
 练习
附录a pl、0编译程序文本
a.1 pascal版本
a.2 c版本
参考文献


编辑推荐

《编译原理》是高等院校计算机科学与技术专业的本科生教材,也可作为教师、研究生蔌软件工程技术人员的参考书。

图书封面

图书标签Tags

广告

下载页面


编译原理 PDF格式下载



讲的很清楚,适合软件工程及计算机相关专业的同学学习和参考,不过一学期好像讲不完那么多,老师说大概只讲十章左右,如果有电子版的话可以考虑。


特别适合计算机初学者阅读,教学必备


已经用了一个学期,是教材。很好


教材指定用书,内容很好,讲得很透彻


教材必须有


真心是本经典的书,内容很多很全,建议根据需要选着看


很新,很好。不错


不错 包装挺好 书没损坏


书很好,我比较满意


送货速度很快,书本质量很好 价格还可以


很好很前面疙瘩


好书,内容貌似挺难的,好好学


这本书很不错哦,毕竟是清华大学出版社的嘛


书很不错,很详细,值得购买


书是挺不错的,就是邮寄的途中给折了,希望当当以后能改改


很快就收到货了,没有损坏非常不错


还没看完,质量还可以!


不错不错 买来充当课本的


perfect,I wish it help me via test.


很详细很全面,值得购买!


比学校买的便宜~质量一样


挺适合当教科书的


就是感觉有点贵


需要很耐心的反复看,希望能真理解


这个商品不错。很经典的样子,需要耐下心来读


最后一门必修!


目前正在看OPG(算符优先)文法,花时间学习此书还是能读懂的。


第二天中午就到了,速度很快


课本,看着还行,应该是真的。


有点薄,其它还可以


正好满足我的需要,非常实用


编译原理太难了,所以慢慢学习中。


公司技术人员选的,不知怎样


不错的教材,研究生入学考试的参考书目,推荐学习。


估计要把算法类的书真的看懂了才能看这本书吧


书是正版的,包装业挺不错的,就是快递太慢了太慢了太慢了


书的性价比还行。没有比较


正在看,觉得还行,不像其他书写得前后不通,是中国牛人自己写得书


书不错。没老师看起来有点难度。


书总体感觉应该不错。


纸张的质量偏差


和以前的版本相比就换了个皮,贵


理论讲的不清楚,不知道该怎么用。多些实例才好。


这本书讲的非常差劲,强烈建议还是使用国外经典教材。


这次买了四百多的书,我彻底失望了,没有一本完美的,都是褶皱的褶皱,折角的折角,包装连个硬纸盒都不给你,就是一堆包装垃-圾纸,我买本书容易嘛?我发誓,以后再也不来当当买书了。并且我会发转发送奖的微博,当当,你太让我失望了。这次你给我发次品,太可耻了,我四百多的书就不能要个好点的保护措施吗?我买的书你就当垃-圾一样包装送过来。服了,去N-MB的。本人微博@扬仔360 不信给发票给图。给我本新书能Si吗?!


我觉很好很适合我


书很好,新印刷的,封皮不同了


非常不好,都经过n手了吧,两本真的一个天上一个地下啊,还不如两本都差不多点,各种颜色各种标记,我都没法做标记了,最后的章节没动可是我们也不学啊,学的地方全是别人的各种笔记,一次最不满意的网购


标准大学教材,内容空洞乏味,时效性差。无特殊需求不建议购买。


没有缺页破损~物流很快~支持正版图书·


一天就送到了,但书有些破损


很好的一本教科书。。不错!!有需要还会在来的。。


alright,don`t buy it except you though you really need it


清华的计算机教材一向不错,基础教材,讲的还算深入浅出吧,书本身质量不错,有清华出版社的水印,是正版


书的质量很好!以后还来.....


不错,不过我主要研究C语言,Pascal的例子看不了,以后还是买本C语言版。


还行吧,就是看不懂啊


相关图书