编译原理及实践教程
编译原理及实践教程封面图

编译原理及实践教程

黄贤英, 曹琼, 王柯柯, 编著

出版社:清华大学出版社

年代:2011

定价:22.0

书籍简介:

本书面向应用型本科计算机专业学生,通过一个编译器的设计实现案例详细讲解了编译程序及其相关部分的分析设计和整个编译器的设计实现。

书籍目录:

第1章 概述

1.1 程序设计语言与编译程序

1.1.1 程序设计语言

1.1.2 翻译程序

1.1.3 编译程序和解释程序

1.1.4 编译程序的伙伴

1.2 编译过程和编译程序的结构

1.2.1 编译过程概述

1.2.2 编译程序的结构

1.2.3 编译阶段的组合

1.3 编译程序的设计

1.3.1 编译程序的构造方式

1.3.2 Sample语言编译程序的设计

1.4 编译程序的发展及应用

1.4.1 编译程序的发展

1.4.2 为什么要学习编译原理及其构造技术

1.4.3 编译技术的应用

1.5 小结

1.6 习题

第2章 高级语言设计基础

2.1 符号和符号串

2.2 文法与语言

2.2.1 文法的定义

2.2.2 文法产生的语言

2.2.3 文法的二义性

2.2.4 文法的分类

2.3 高级语言的设计

2.3.1 程序语言的定义

2.3.2 冯·诺依曼体系结构与高级语言

2.3.3 数据类型

2.3.4 语句和控制结构

2.3.5 语言设计的步骤

2.4 语言设计实例

2.4.1 Sample语言字符集的定义

2.4.2 Sample语言单词的定义

2.4.3 Sample语言数据类型的定义

2.4.4 Sample语言表达式的定义

2.4.5 Sample语言语句的定义

2.4.6 Sample语言程序体和程序的定义

2.4.7 符合Sample语言定义的源程序举例

2.5 小结

2.6 习题

第3章 词法分析

3.1 词法分析的任务和功能

3.1.1 词法分析的功能

3.1.2 单词的类型和种别码

3.2 词法分析器的设计

3.2.1 词法分析程序的接口

3.2.2 词法分析程序的总体设计

3.2.3 词法分析程序的详细设计

3.2.4 单词的识别和状态转换图

3.2.5 符号表及其操作

3.2.6 词法分析阶段的错误处理

3.3 正规文法、正规式与有穷自动机

3.3.1 正规文法

3.3.2 正规式

3.3.3 有穷自动机

3.3.4 正规文法与有穷自动机的等价性

3.3.5 正规式与有穷自动机的等价性

3.4 词法分析程序的自动生成

3.4.1 LEX的概述

3.4.2 LEX源文件的书写

3.4.3 LEX的工作原理

3.4.4 LEX使用中的一些注意事项

3.4.5 使用LEX自动生成Sample语言的词法分析程序

3.5 小结

3.6 习题

第4章 语法分析

4.1 语法分析概述

4.2 自上而下的语法分析

4.2.1 自上而下分析方法中的问题探究

4.2.2 递归下降分析方法

4.2.3 预测分析方法

4.2.4 Sample语言自上而下语法分析程序的设计

4.3 自下而上的语法分析

4.3.1 自下而上分析方法概述

4.3.2 算符优先分析法

4.3.3 LR分析法

4.4 语法分析器的自动生成工具YACC

4.4.1 YACC概述

4.4.2 YACC源文件的格式

4.4.3 YACC的翻译规则

4.4.4 YACC的辅助程序

4.5 语法分析程序中的错误处理

4.5.1 语法分析中的错误处理的一般原则

4.5.2 自上而下语法分析的错误处理

4.5.3 自下而上语法分析的错误处理

4.6 小结

4.7 习题

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

5.1 概述

5.1.1 语义分析和中间代码生成的功能和任务

5.1.2 静态语义检查

5.1.3 语义处理

5.2 属性文法和语法制导的翻译

5.2.1 属性文法的定义

5.2.2 综合属性的计算

5.2.3 继承属性的计算

5.2.4 语法制导的翻译方法

5.3 常见语句的语法制导的翻译

5.3.1 语义变量和语义函数

5.3.2 常量说明语句的语义处理

5.3.3 变量说明语句的语义处理

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

5.3.5 布尔表达式的翻译

5.3.6 if语句的翻译

5.3.7 do…while语句的翻译

5.3.8 for语句的翻译

5.4 Sample语言语法制导的翻译程序的设计

5.5 小结

5.6 习题

第6章 运行时存储空间的组织

6.1 程序执行时的活动

6.1.1 源程序中的过程

6.1.2 过程执行时的活动

6.1.3 名字的作用域

6.1.4 参数的传递

6.1.5 名字的绑定

6.2 程序执行时的存储器组织

6.2.1 程序执行时存储器的划分

6.2.2 活动记录

6.2.3 存储分配策略

6.3 静态存储分配

6.3.1 静态存储分配的性质

6.3.2 静态存储分配的实现

6.3.3 临时变量的地址分配

6.4 栈式存储分配策略

6.5 堆式存储分配

6.5.1 堆式存储分配的主要问题

6.5.2 堆式动态存储分配的实现

6.5.3 存储回收

6.6 小结

6.7 习题

第7章 代码优化

7.1 概述

7.1.1 代码优化的地位

7.1.2 基本块的概念及流图

7.2 局部优化

7.2.1 删除公共子表达式

7.2.2 复写传播

7.2.3 删除无用代码

7.2.4 对程序进行代数恒等变换

7.2.5 基本块的DAG表示及优化

7.3 循环优化

7.3.1 循环的定义

7.3.2 代码外提

7.3.3 强度削弱

7.3.4 删除归纳变量

7.4 小结

7.5 习题

第8章 目标代码生成

8.1 概述

8.2 目标机器

8.3 简单的代码生成算法

8.3.1 中间代码的简单翻译方法

8.3.2 引用信息和活跃信息

8.3.3 寄存器描述和地址描述

8.3.4 基本块的代码生成算法

8.4 从DAG生成目标代码

8.5 Sample代码优化及目标代码生成器的设计

8.6 小结

8.7 习题

参考文献

内容摘要:

本书系统地介绍了编译程序的设计与构造以及各组成部分的软件技术和实用方法。全书共8章,主要包括编译程序概述、高级语言设计基础、词法分析、语法分析、语义分析和中间代码生成、运行时存储空间的组织、代码优化以及目标代码生成。本书的目标是使学习者建立一个较为完整的编译系统的模型,掌握各个阶段的基本算法、常用的编译技术和方法,为今后从事系统软件和应用软件的开发打下理论和实践基础。为此,本书力求讲清基本概念、基本原理和实现方法;书中引入了丰富的典型例题,配以大量的习题;本书以Sample语言为例来贯穿各章内容,介绍了其编译程序的具体实现技术和构造方法。本书可供高等学校计算机科学与技术及相关专业本科教学使用,也可供计算机系统软件和应用软件开发人员自学和参考。

编辑推荐:

面向应用型本科计算机专业学生,通过一个编译器的设计实现案例详细讲解了编译程序及其相关部分的分析设计和整个编译器的设计实现。
教学目标明确,注重理论与实践的结合。
教学方法灵活,培养学生自主学习的能力。
教学内容先进,反映了计算机学科的最新发展。
教学模式完善,提供配套的教学资源解决方案。

书籍规格:

书籍详细信息
书名编译原理及实践教程站内查询相似图书
9787302277439
如需购买下载《编译原理及实践教程》pdf扫描版电子书或查询更多相关信息,请直接复制isbn,搜索即可全网搜索该ISBN
出版地北京出版单位清华大学出版社
版次1版印次1
定价(元)22.0语种简体中文
尺寸26 × 19装帧平装
页数印数 3000

书籍信息归属:

编译原理及实践教程是清华大学出版社于2012.出版的中图分类号为 TP314 的主题关于 编译程序-程序设计-高等学校-教材 的书籍。