注册 登录 进入教材巡展 进入在线书城
#
  • #

出版时间:2019年12月

出版社:东南大学出版社

以下为《编译原理及编译程序构造(第3版)》的配套数字资源,这些资源在您购买图书后将免费附送给您:
  • 东南大学出版社
  • 9787564185954
  • 323694
  • 50212935-6
  • 16开
  • 2019年12月
  • 计算机
  • 本科
内容简介
本书介绍编译原理理论基础及其实现方法,强调语言的形式化定义、编译技术的各种概念及实现过程的具体方法。介绍过程以算法为核心,力求简单明了,反映编译的基础知识。从形式语言理论角度讨论词法分析和语法分析技术。本书增加了经典习题的分析和解答,以帮助读者更好地理解和巩固所学内容。
目录
1 引论
1.1 程序设计语言与编译
1.2 编译程序概述
1.2.1 词法分析
1.2.2 语法分析
1.2.3 中间代码生成
1.2.4 优化
1.2.5 目标代码生成
1.2.6 表格与表格管理
1.2.7 出错处理
1.2.8 遍
1.3 编译程序生成
1.4 编译程序构造
习题

2 编译基础知识
2.1 字母表与符号串
2.1.1 符号串集合的运算
2.1.2 符号串的前缀、后缀及子串
2.1.3 字母表的闭包与正闭包
2.2 文法与语言的关系
2.2.1 文法的直观概念
2.2.2 文法与语言的形式定义
2.3 文法构造与文法简化
2.3.1 由语言构造文法的例子
2.3.2 文法的简化
2.3.3 构造无e产生式的上下文无关文法
2.4 语法树与文法的二义性
2.4.1 语法树
2.4.2 文法的二义性
习题

3 词法分析
3.1 正规文法和有限自动机
3.1 _1正规文法、正规集与正规式
3.1.2 有限自动机
3.1.3 正规式与有限自动机之间的关系
3.1.4 正规文法与有限自动机
3.2 词法分析程序
3.2.1 预处理与超前搜索
3.2.2 扫描器的输出格式
3.2.3 扫描器的设计
3.3 词法分析程序的自动生成
3.3.1 LEX语言
3.3.2 LEX编译程序的构造
习题

4 自上而下语法分析
4.1 下推自动机
4.2 自上而下分析法的一般问题
4.2.1 消除左递归
4.2.2 消除回溯——预测与提左因子
4.3 预测分析程序与LL(1)文法
4.3.1 求串a的终结首符集和非终结符A的随符集
4.3.2 构造预测分析表
4.3.3 状态表
4.4 递归下降分析法
习题

5 优先分析法
5.1 简单优先分析方法
5.1.1 基本思想
5.1.2 有关文法的一些关系
5.1.3 优先矩阵的构造算法
5.1.4 简单优先分析算法
5.2 算符优先分析法
5.2.1 算符优先分析技术的引进
5.2.2 算符优先文法及优先表的构造
5.2.3 算符优先分析的若干问题
5.3 优先函数
习题

6 LR分析法及分析程序自动构造
6.1 LR分析器
6.2 LR(O)项目集族和LR(0)分析表的构造
6.2.1 LR(O)项目集规范族的构造
6.2.2 LR(O)分析表的构造算法
6.3 SLR分析表的构造
6.4 规范LR分析表的构造
6.4.1 构造LR(1)项目集规范族的算法
6.4.2 构造LR(1)分析表的算法
6.5 LALR分析表构造
6.5.1 基本思想
6.5.2 构造LALR分析表的算法
6.6 二义文法的应用
6.7 分析表的自动生成
6.7.1 终结符和产生式的优先级
6.7.2 结合规则
6.7.3 LR分析表的安排
习题

7 语法制导翻译并产生中间代码
7.1 概述
7.2 简单算术表达式和赋值语句的翻译
7.2.1 四元式
7.2.2 赋值语句的翻译
7.2.3 类型转换
7.3 布尔表达式的翻译
7.3.1 布尔表达式在逻辑演算中的翻译
7.3.2 控制语句中布尔式的翻译
7.4 控制语句的翻译
7.4.1 标号和转移语句
7.4.2 IF语句的翻译
7.4.3 wHILE语句的翻译
7.4.4 REPEAT语句的翻译
7.4.5 循环FOR语句的翻译
7.4.6 分情语句的翻译
7.4.7 复合语句的翻译
7.5 数组元素及其在赋值语句中的翻译
7.5.1 数组及其下标变量地址的计算
7.5.2 数组元素引用的中间代码形式
7.5.3 按行存放的赋值语句中数组元素的翻译
7.5.4 按列存放的赋值语句中数组元素的翻译
7.6 过程调用语句
7.6.1 参数传递
7.6.2 过程调用语句的翻译
7.6.3 过程调用和数组元素相混淆的处理
7.7 说明语句的翻译
7.7.1 分程序结构的符号表
7.7.2 整型、实型说明语句的翻译
7.7.3 常量定义语句的翻译
7.7.4 数组说明语句的翻译
7.7.5 过程说明语句的翻译
7.8 输入/输出语句的翻译
7.9 自上而下分析制导的翻译
7.9.1 算术表达式的翻译
7.9.2 布尔表达式的翻译
7.9.3 简单语句的翻译
7.9.4 LL(1)语法制导翻译
7.10 属性文法与属性翻译
7.10.1 属性文法与L属性文法
7.10.2 属性翻译
7.11 中间代码的其他形式
7.11.1 后缀表示法
7.11.2 三元式
7.11.3 间接三元式
7.11.4 树
习题

8 运行时数据区的管理
8.1 静态存储管理
8.1.1 数据区
8.1.2 公用语句处理
8.1.3 等价语句处理
8.1.4 地址分配
8.1.5 临时变量地址分配
8.2 栈式存储管理
8.2.1 允许过程(函数)递归调用的数据存储管理
8.2.2 嵌套过程语言的栈式存储管理
8.3 堆式存储管理
8.3.1 堆式存储管理技术

9 代码优化
9.1 优化概述
9.1.1 局部优化简介
9.1.2 循环优化简介
9.1.3 全局优化简介
9.2 局部优化
9.2.1 基本块
9.2.2 基本块的DAG表示
9.2.3 DAG在基本块优化中的作用
9.2.4 DAG构造算法讨论
9.3 控制流程分析和循环查找算法
9.3.1 程序流图与必经结点集
9.3.2 深度为主排序
9.3.3 查找循环算法
9.4 数据流分析
9.4.1 到达一定值数据流方程
9.4.2 引用一定值链(ud链)
9.4.3 活跃变量及数据流方程
9.5 循环优化
9.5.1 代码外提
9.5.2 强度减弱与归纳变量删除
习题

10 目标代码生成
10.1 模型计算机的指令系统
10.2 一种简单代码生成算法
10.2.1 活跃信息与待用信息
10.2.2 寄存器和变量地址描述
10.2.3 代码生成算法
10.3 循环中寄存器分配
10.4 DAG结点的一种启发式排序
习题
附录

EL语言编译程序
A.EL语言文法的扩充Backus表示法
B EI语言编译程序构造的实践指导
c.扩充的EL语言文法与中间代码的解释执行程序
附录
经典习题解析
参考文献