图书信息
图书目录
数字化资源

编译原理(第2版)



  本书是普通高等教育“十一五”国家级规划教材,也是2009年度普通高等教育精品教材。本书介绍编译器构造的一般原理和基本实现方法,其内容包括词法分析、语法分析、语义分析、中间代码生成、目标代码生成、独立于机器的优化和依赖于机器的优化等。除了介绍命令式编程语言的编译技术外,本书还介绍面向对象语言和函数式编程语言的实现技术。本书还强调一些相关的理论知识,如形式语言和自动机理论、语法制导的定义和属性文法、类型论和类型系统等。
  本书内容丰富,讲解深入,并注意理论联系实际,可作为高等学校计算机科学及相关专业的教材,也可供计算机软件工程技术人员参考使用。


作者:
陈意云 张昱

定价:
38.00 元

出版时间:
2008-06-16

ISBN:
978-7-04-023963-8

物料号:
23963-00

读者对象:
高等教育

一级分类:
计算机/教育技术类

二级分类:
计算机类专业核心课程

三级分类:
编译原理

重点项目:
“十一五”国家规划教材

版面字数:
600千字

开本:
16开

装帧形式:
平装

页数:
412

最新
印次时间:
2014年01月
  • 目录
    • 第1章 引论
      • 1.1 编译器概述
        • 1.1.1 词法分析
          • 1.1.2 语法分析
            • 1.1.3 语义分析
              • 1.1.4 中间代码生成
                • 1.1.5 代码优化
                  • 1.1.6 代码生成
                    • 1.1.7 符号表管理
                      • 1.1.8 阶段的分组
                        • 1.1.9 解释器
                        • 1.2 编译器技术的应用
                          • 1.2.1 高级语言的实现
                            • 1.2.2 针对计算机体系结构的优化
                              • 1.2.3 新计算机体系结构的设计
                                • 1.2.4 程序翻译
                                  • 1.2.5 提高软件开发效率的工具
                                  • 习题1
                                  • 第2章 词法分析
                                    • 2.1 词法记号及属性
                                      • 2.1.1 词法记号、模式、词法单元
                                        • 2.1.2 词法记号的属性
                                          • 2.1.3 词法错误
                                          • 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 NFA到DFA的变换
                                                          • 2.3.4 DFA的化简
                                                          • 2.4 从正规式到有限自动机
                                                            • 2.5 词法分析器的生成器
                                                              • 习题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.2.4 适当的表达式文法
                                                                                  • 3.2.5 消除二义性
                                                                                    • 3.2.6 消除左递归
                                                                                      • 3.2.7 提左因子
                                                                                        • 3.2.8 非上下文无关的语言构造
                                                                                          • 3.2.9 形式语言鸟瞰
                                                                                          • 3.3 自上而下分析
                                                                                            • 3.3.1 自上而下分析的一般方法
                                                                                              • 3.3.2 LL(1)文法
                                                                                                • 3.3.3 递归下降的预测分析
                                                                                                  • 3.3.4 非递归的预测分析
                                                                                                    • 3.3.5 构造预测分析表
                                                                                                      • 3.3.6 预测分析的错误恢复
                                                                                                      • 3.4 自下而上分析
                                                                                                        • 3.4.1 归约
                                                                                                          • 3.4.2 句柄
                                                                                                            • 3.4.3 用栈实现移进归约分析
                                                                                                              • 3.4.4 移进归约分析的冲突
                                                                                                              • 3.5 LR分析器
                                                                                                                • 3.5.1 LR分析算法
                                                                                                                  • 3.5.2 LR文法和LR分析方法的特点
                                                                                                                    • 3.5.3 构造SLR分析表
                                                                                                                      • 3.5.4 构造规范的LR分析表
                                                                                                                        • 3.5.5 构造LALR分析表
                                                                                                                          • 3.5.6 非二义且非LR的上下文无关文法
                                                                                                                          • 3.6 二义文法的应用
                                                                                                                            • 3.6.1 使用算符的优先级和结合性来解决冲突
                                                                                                                              • 3.6.2 使用其他约定来解决冲突
                                                                                                                                • 3.6.3 LR分析的错误恢复
                                                                                                                                • 3.7 语法分析器的生成器
                                                                                                                                  • 3.7.1 分析器的生成器Yacc
                                                                                                                                    • 3.7.2 用Yacc处理二义文法
                                                                                                                                      • 3.7.3 Yacc的错误恢复
                                                                                                                                      • 习题3
                                                                                                                                      • 第4章 语法制导的翻译
                                                                                                                                        • 4.1 语法制导的定义
                                                                                                                                          • 4.1.1 语法制导定义的形式
                                                                                                                                            • 4.1.2 综合属性
                                                                                                                                              • 4.1.3 继承属性
                                                                                                                                                • 4.1.4 属性依赖图
                                                                                                                                                  • 4.1.5 属性计算次序
                                                                                                                                                  • 4.2 S属性定义的自下而上计算
                                                                                                                                                    • 4.2.1 语法树
                                                                                                                                                      • 4.2.2 构造语法树的语法制导定义
                                                                                                                                                        • 4.2.3 S属性的自下而上计算
                                                                                                                                                        • 4.3 L属性定义的自上而下计算
                                                                                                                                                          • 4.3.1 L属性定义
                                                                                                                                                            • 4.3.2 翻译方案
                                                                                                                                                              • 4.3.3 预测翻译器的设计
                                                                                                                                                                • 4.3.4 用综合属性代替继承属性
                                                                                                                                                                • 4.4 L属性的自下而上计算
                                                                                                                                                                  • 4.4.1 删除翻译方案中嵌入的动作
                                                                                                                                                                    • 4.4.2 分析栈上的继承属性
                                                                                                                                                                      • 4.4.3 模拟继承属性的计算
                                                                                                                                                                      • 习题4
                                                                                                                                                                      • 第5章 类型检查
                                                                                                                                                                        • 5.1 类型在编程语言中的作用
                                                                                                                                                                          • 5.1.1 执行错误和安全语言
                                                                                                                                                                            • 5.1.2 类型化语言和类型系统
                                                                                                                                                                              • 5.1.3 类型化语言的优点
                                                                                                                                                                              • 5.2 描述类型系统的语言
                                                                                                                                                                                • 5.2.1 定型断言
                                                                                                                                                                                  • 5.2.2 定型规则
                                                                                                                                                                                    • 5.2.3 类型检查和类型推断
                                                                                                                                                                                    • 5.3 一个简单类型检查器的规范
                                                                                                                                                                                      • 5.3.1 一个简单的语言
                                                                                                                                                                                        • 5.3.2 类型系统
                                                                                                                                                                                          • 5.3.3 类型检查
                                                                                                                                                                                            • 5.3.4 类型转换
                                                                                                                                                                                            • 5.4 多态函数
                                                                                                                                                                                              • 5.4.1 为什么要使用多态函数
                                                                                                                                                                                                • 5.4.2 类型变量
                                                                                                                                                                                                  • 5.4.3 一个含多态函数的语言
                                                                                                                                                                                                    • 5.4.4 代换、实例和合一
                                                                                                                                                                                                      • 5.4.5 多态函数的类型检查
                                                                                                                                                                                                      • 5.5 类型表达式的等价
                                                                                                                                                                                                        • 5.5.1 类型表达式的结构等价
                                                                                                                                                                                                          • 5.5.2 类型表达式的名字等价
                                                                                                                                                                                                            • 5.5.3 记录类型
                                                                                                                                                                                                              • 5.5.4 类型表示中的环
                                                                                                                                                                                                              • 5.6 函数和算符的重载
                                                                                                                                                                                                                • 5.6.1 子表达式的可能类型集合
                                                                                                                                                                                                                  • 5.6.2 缩小可能类型的集合
                                                                                                                                                                                                                  • 习题5
                                                                                                                                                                                                                  • 第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.2.4 栈上可变长度数据
                                                                                                                                                                                                                                        • 6.2.5 悬空引用
                                                                                                                                                                                                                                        • 6.3 非局部名字的访问
                                                                                                                                                                                                                                          • 6.3.1 无过程嵌套的静态作用域
                                                                                                                                                                                                                                            • 6.3.2 有过程嵌套的静态作用域
                                                                                                                                                                                                                                              • 6.3.3 动态作用域
                                                                                                                                                                                                                                              • 6.4 参数传递
                                                                                                                                                                                                                                                • 6.4.1 值调用
                                                                                                                                                                                                                                                  • 6.4.2 引用调用
                                                                                                                                                                                                                                                    • 6.4.3 换名调用
                                                                                                                                                                                                                                                    • 6.5 堆管理
                                                                                                                                                                                                                                                      • 6.5.1 内存管理器
                                                                                                                                                                                                                                                        • 6.5.2 计算机内存分层
                                                                                                                                                                                                                                                          • 6.5.3 程序局部性
                                                                                                                                                                                                                                                            • 6.5.4 手工回收请求
                                                                                                                                                                                                                                                            • 习题6
                                                                                                                                                                                                                                                            • 第7章 中间代码生成
                                                                                                                                                                                                                                                              • 7.1 中间语言
                                                                                                                                                                                                                                                                • 7.1.1 后缀表示
                                                                                                                                                                                                                                                                  • 7.1.2 图形表示
                                                                                                                                                                                                                                                                    • 7.1.3 三地址代码
                                                                                                                                                                                                                                                                      • 7.1.4 静态单赋值形式
                                                                                                                                                                                                                                                                      • 7.2 声明语句
                                                                                                                                                                                                                                                                        • 7.2.1 过程中的声明
                                                                                                                                                                                                                                                                          • 7.2.2 作用域信息的保存
                                                                                                                                                                                                                                                                            • 7.2.3 记录的域名
                                                                                                                                                                                                                                                                            • 7.3 赋值语句
                                                                                                                                                                                                                                                                              • 7.3.1 符号表中的名字
                                                                                                                                                                                                                                                                                • 7.3.2 数组元素的地址计算
                                                                                                                                                                                                                                                                                  • 7.3.3 数组元素地址计算的翻译方案
                                                                                                                                                                                                                                                                                    • 7.3.4 类型转换
                                                                                                                                                                                                                                                                                    • 7.4 布尔表达式和控制流语句
                                                                                                                                                                                                                                                                                      • 7.4.1 布尔表达式
                                                                                                                                                                                                                                                                                        • 7.4.2 控制流语句的翻译
                                                                                                                                                                                                                                                                                          • 7.4.3 布尔表达式的控制流翻译
                                                                                                                                                                                                                                                                                            • 7.4.4 开关语句的翻译
                                                                                                                                                                                                                                                                                              • 7.4.5 过程调用的翻译
                                                                                                                                                                                                                                                                                              • 习题7
                                                                                                                                                                                                                                                                                              • 第8章 代码生成
                                                                                                                                                                                                                                                                                                • 8.1 代码生成器设计中的问题
                                                                                                                                                                                                                                                                                                  • 8.1.1 目标程序
                                                                                                                                                                                                                                                                                                    • 8.1.2 指令选择
                                                                                                                                                                                                                                                                                                      • 8.1.3 寄存器分配
                                                                                                                                                                                                                                                                                                        • 8.1.4 计算次序选择
                                                                                                                                                                                                                                                                                                        • 8.2 目标语言
                                                                                                                                                                                                                                                                                                          • 8.2.1 目标机器的指令集
                                                                                                                                                                                                                                                                                                            • 8.2.2 指令的代价
                                                                                                                                                                                                                                                                                                            • 8.3 基本块和流图
                                                                                                                                                                                                                                                                                                              • 8.3.1 基本块
                                                                                                                                                                                                                                                                                                                • 8.3.2 基本块的优化
                                                                                                                                                                                                                                                                                                                  • 8.3.3 流图
                                                                                                                                                                                                                                                                                                                    • 8.3.4 下次引用信息
                                                                                                                                                                                                                                                                                                                    • 8.4 一个简单的代码生成器
                                                                                                                                                                                                                                                                                                                      • 8.4.1 寄存器描述和地址描述
                                                                                                                                                                                                                                                                                                                        • 8.4.2 代码生成算法
                                                                                                                                                                                                                                                                                                                          • 8.4.3 寄存器选择函数
                                                                                                                                                                                                                                                                                                                            • 8.4.4 为变址和指针语句产生代码
                                                                                                                                                                                                                                                                                                                              • 8.4.5 条件语句
                                                                                                                                                                                                                                                                                                                              • 习题8
                                                                                                                                                                                                                                                                                                                              • 第9章 独立于机器的优化
                                                                                                                                                                                                                                                                                                                                • 9.1 优化的主要种类
                                                                                                                                                                                                                                                                                                                                  • 9.1.1 优化的主要源头
                                                                                                                                                                                                                                                                                                                                    • 9.1.2 一个实例
                                                                                                                                                                                                                                                                                                                                      • 9.1.3 公共子表达式删除
                                                                                                                                                                                                                                                                                                                                        • 9.1.4 复写传播
                                                                                                                                                                                                                                                                                                                                          • 9.1.5 死代码删除
                                                                                                                                                                                                                                                                                                                                            • 9.1.6 代码外提
                                                                                                                                                                                                                                                                                                                                              • 9.1.7 强度削弱和归纳变量删除
                                                                                                                                                                                                                                                                                                                                              • 9.2 数据流分析介绍
                                                                                                                                                                                                                                                                                                                                                • 9.2.1 数据流抽象
                                                                                                                                                                                                                                                                                                                                                  • 9.2.2 数据流分析模式
                                                                                                                                                                                                                                                                                                                                                    • 9.2.3 到达定值
                                                                                                                                                                                                                                                                                                                                                      • 9.2.4 活跃变量
                                                                                                                                                                                                                                                                                                                                                        • 9.2.5 可用表达式
                                                                                                                                                                                                                                                                                                                                                          • 9.2.6 小结
                                                                                                                                                                                                                                                                                                                                                          • 9.3 数据流分析的基础
                                                                                                                                                                                                                                                                                                                                                            • 9.3.1 半格
                                                                                                                                                                                                                                                                                                                                                              • 9.3.2 迁移函数
                                                                                                                                                                                                                                                                                                                                                                • 9.3.3 一般框架的迭代算法
                                                                                                                                                                                                                                                                                                                                                                  • 9.3.4 数据流解的含义
                                                                                                                                                                                                                                                                                                                                                                  • 9.4 常量传播
                                                                                                                                                                                                                                                                                                                                                                    • 9.4.1 常量传播框架的数据流值
                                                                                                                                                                                                                                                                                                                                                                      • 9.4.2 常量传播框架的迁移函数
                                                                                                                                                                                                                                                                                                                                                                        • 9.4.3 常量传播框架的单调性
                                                                                                                                                                                                                                                                                                                                                                          • 9.4.4 常量传播框架的非分配性
                                                                                                                                                                                                                                                                                                                                                                            • 9.4.5 结果的解释
                                                                                                                                                                                                                                                                                                                                                                            • 9.5 部分冗余删除
                                                                                                                                                                                                                                                                                                                                                                              • 9.5.1 冗余的根源
                                                                                                                                                                                                                                                                                                                                                                                • 9.5.2 能否删除所有的冗余
                                                                                                                                                                                                                                                                                                                                                                                  • 9.5.3 惰性代码移动问题
                                                                                                                                                                                                                                                                                                                                                                                    • 9.5.4 预期表达式
                                                                                                                                                                                                                                                                                                                                                                                      • 9.5.5 惰性代码移动算法
                                                                                                                                                                                                                                                                                                                                                                                      • 9.6 流图中的循环
                                                                                                                                                                                                                                                                                                                                                                                        • 9.6.1 支配结点
                                                                                                                                                                                                                                                                                                                                                                                          • 9.6.2 回边和可归约性
                                                                                                                                                                                                                                                                                                                                                                                            • 9.6.3 流图的深度
                                                                                                                                                                                                                                                                                                                                                                                              • 9.6.4 自然循环
                                                                                                                                                                                                                                                                                                                                                                                                • 9.6.5 迭代流图算法的收敛速度
                                                                                                                                                                                                                                                                                                                                                                                                • 习题9
                                                                                                                                                                                                                                                                                                                                                                                                • 第10章 依赖于机器的优化
                                                                                                                                                                                                                                                                                                                                                                                                  • 10.1 处理器体系结构
                                                                                                                                                                                                                                                                                                                                                                                                    • 10.1.1 指令流水线和分支延迟
                                                                                                                                                                                                                                                                                                                                                                                                      • 10.1.2 流水化的执行
                                                                                                                                                                                                                                                                                                                                                                                                        • 10.1.3 多指令发射
                                                                                                                                                                                                                                                                                                                                                                                                        • 10.2 代码调度的约束
                                                                                                                                                                                                                                                                                                                                                                                                          • 10.2.1 数据相关
                                                                                                                                                                                                                                                                                                                                                                                                            • 10.2.2 发现内存访问中的相关性
                                                                                                                                                                                                                                                                                                                                                                                                              • 10.2.3 寄存器使用和并行执行之间的折中
                                                                                                                                                                                                                                                                                                                                                                                                                • 10.2.4 寄存器分配和代码调度的次序安排
                                                                                                                                                                                                                                                                                                                                                                                                                  • 10.2.5 控制相关
                                                                                                                                                                                                                                                                                                                                                                                                                    • 10.2.6 投机执行的支持
                                                                                                                                                                                                                                                                                                                                                                                                                      • 10.2.7 一个基本的机器模型
                                                                                                                                                                                                                                                                                                                                                                                                                      • 10.3 基本块调度
                                                                                                                                                                                                                                                                                                                                                                                                                        • 10.3.1 数据依赖图
                                                                                                                                                                                                                                                                                                                                                                                                                          • 10.3.2 基本块的表调度
                                                                                                                                                                                                                                                                                                                                                                                                                            • 10.3.3 区分优先级的拓扑次序
                                                                                                                                                                                                                                                                                                                                                                                                                            • 10.4 全局代码调度
                                                                                                                                                                                                                                                                                                                                                                                                                              • 10.4.1 简单的代码移动
                                                                                                                                                                                                                                                                                                                                                                                                                                • 10.4.2 向上的代码移动
                                                                                                                                                                                                                                                                                                                                                                                                                                  • 10.4.3 向下的代码移动
                                                                                                                                                                                                                                                                                                                                                                                                                                    • 10.4.4 更新数据相关
                                                                                                                                                                                                                                                                                                                                                                                                                                      • 10.4.5 全局调度的其他问题
                                                                                                                                                                                                                                                                                                                                                                                                                                        • 10.4.6 静态调度器和动态调度器的相互影响
                                                                                                                                                                                                                                                                                                                                                                                                                                        • 10.5 软件流水
                                                                                                                                                                                                                                                                                                                                                                                                                                          • 10.5.1 引言
                                                                                                                                                                                                                                                                                                                                                                                                                                            • 10.5.2 循环的软件流水
                                                                                                                                                                                                                                                                                                                                                                                                                                              • 10.5.3 寄存器分配和代码生成
                                                                                                                                                                                                                                                                                                                                                                                                                                                • 10.5.4 do桘across循环
                                                                                                                                                                                                                                                                                                                                                                                                                                                  • 10.5.5 软件流水的目标和约束
                                                                                                                                                                                                                                                                                                                                                                                                                                                    • 10.5.6 软件流水算法
                                                                                                                                                                                                                                                                                                                                                                                                                                                      • 10.5.7 无环数据依赖图的调度
                                                                                                                                                                                                                                                                                                                                                                                                                                                      • 10.6 并行性和数据局部性优化概述
                                                                                                                                                                                                                                                                                                                                                                                                                                                        • 10.6.1 多处理器
                                                                                                                                                                                                                                                                                                                                                                                                                                                          • 10.6.2 应用中的并行性
                                                                                                                                                                                                                                                                                                                                                                                                                                                            • 10.6.3 循环级并行
                                                                                                                                                                                                                                                                                                                                                                                                                                                              • 10.6.4 数据局部性
                                                                                                                                                                                                                                                                                                                                                                                                                                                                • 10.6.5 矩阵乘法算法
                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • 10.6.6 矩阵乘法算法的优化
                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • 习题10
                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • 第11章 编译系统和运行系统
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • 11.1 C语言的编译系统
                                                                                                                                                                                                                                                                                                                                                                                                                                                                      • 11.1.1 预处理器
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        • 11.1.2 汇编器
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          • 11.1.3 连接器
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            • 11.1.4 目标文件的格式
                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • 11.1.5 符号解析
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                • 11.1.6 静态库
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • 11.1.7 可执行目标文件及装入
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • 11.1.8 动态连接
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      • 11.1.9 处理目标文件的一些工具
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      • 11.2 Java语言的运行系统
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        • 11.2.1 Java虚拟机语言简介
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          • 11.2.2 Java虚拟机
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            • 11.2.3 即时编译器
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            • 11.3 无用单元收集
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • 11.3.1 标记和清扫
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                • 11.3.2 引用计数
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • 11.3.3 拷贝收集
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • 11.3.4 分代收集
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      • 11.3.5 渐增式收集
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        • 11.3.6 编译器与收集器之间的相互影响
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        • 习题11
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        • 第12章 面向对象语言的编译
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          • 12.1 面向对象语言的概念
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            • 12.1.1 对象和对象类
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • 12.1.2 继承
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                • 12.1.3 信息封装
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                • 12.2 方法的编译
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • 12.3 继承的编译方案
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • 12.3.1 单一继承的编译方案
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      • 12.3.2 重复继承的编译方案
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      • 习题12
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      • 第13章 函数式语言的编译
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        • 13.1 函数式编程语言简介
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          • 13.1.1 语言构造
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            • 13.1.2 参数传递机制
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • 13.1.3 变量的自由出现和约束出现
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • 13.2 函数式语言的编译简介
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                • 13.2.1 几个受启发的例子
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • 13.2.2 编译函数
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • 13.2.3 环境与约束
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • 13.3 抽象机的体系结构
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      • 13.3.1 抽象机的栈
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        • 13.3.2 抽象机的堆
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          • 13.3.3 名字的寻址
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            • 13.3.4 约束的建立
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            • 13.4 指令集和编译
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • 13.4.1 表达式
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                • 13.4.2 变量的引用性出现
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • 13.4.3 函数定义
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • 13.4.4 函数应用
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      • 13.4.5 构造和计算闭包
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        • 13.4.6 letrec表达式和局部变量
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        • 习题13
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        • 参考文献