书籍详情

编译程序设计原理与技术

编译程序设计原理与技术

作者:李文生编著

出版社:北京邮电大学出版社

出版时间:2002-09-01

ISBN:9787563506231

定价:¥34.00

购买这本书可以去
内容简介
  在较多地参考了国内外权威人士著作的基础上,本书系统地介绍了编译程序设计的基本原理和技术。其主要内容包括词法分析、语法分析、类型检查、中间代码生成、代码生成和代码优化等。本书旨在培养学生发现问题、提出问题、进而分析和解决问题的能力。本书内容充实,图文并茂,各章节内容循序渐进,并注意理论与实践的结合,可作为高等院校计算机科学与技术专业的教材或参考书,也可供其他专业的学生或从事计算机工作的工程技术人员阅读参考。
作者简介
暂缺《编译程序设计原理与技术》作者简介
目录
第1章形式语言与自动机基础
1.1语言和文法
1.1.1字母表和符号串
1.1.2语言
1.1.3文法及其形式定义
1.1.4推导和短语
1.1.5分析树及二义性
1.1.6文法的变换
1.2自动机与正规表达式
1.2.1确定的有限自动机(DFA)
1.2.2非确定的有限自动机(NFA)
1.2.3具有-转移的非确定的有限自动机
1.2.4正规文法与有限自动机的等价性
1.2.5正规表达式与有限自动机的等价性
1.2.6正规表达式与正规文法
1.2.7DFA的化简
习题
第2章编译概述
2.1翻译和解释
2.1.1程序设计语言
2.1.2翻译程序
2.2编译的阶段
2.2.1分析阶段
2.2.2综合阶段
2.2.3符号表管理
2.2.4错误处理
2.2.5前端和后端
2.2.6“遍”的概念
2.3编译程序的前后处理器
2.3.1预处理器
2.3.2汇编程序
2.3.3连接装配程序
2.4编译原理和技术的应用
习题
第3章词法分析
3.1词法分析器的作用
3.1.1词法分析器与语法分析器的关系
3.1.2分离词法分析器的好处
3.2词法分析器的输入与输出
3.2.1设置输入缓冲器的必要性
3.2.2配对缓冲器
3.2.3词法分析器的输出
3.3记号的描述和识别
3.3.1词法与正规文法
3.3.2记号的文法
3.3.3状态转换图与记号的识别
3.4词法分析程序的设计与实现
3.4.1文法及状态转换图
3.4.2词法分析器的构造
3.4.3词法分析器的实现
3.5软件工具LEX
3.5.1LEX规格说明
3.5.2LEX的工作原理
习题
第4章语法分析
4.1语法分析器的作用
4.1.1语法分析器的地位
4.1.2常用的分析方法
4.1.3语法错误的处理
4.2自顶向下分析
4.2.1递归下降分析方法
4.2.2预测分析器
4.2.3非递归的预测分析器
4.3自底向上分析
4.3.1规范归约
4.3.2“移进-归约”方法的实现
4.4LR分析器
4.4.1LR分析器的模型及工作过程
4.4.2SLR分析表的构造
4.4.3LR(1)分析表的构造
4.4.4LALR分析表的构造
4.4.5LR分析方法对二义文法的应用
4.4.6LR分析的错误处理与恢复
4.5软件工具YACC
4.5.1YACC说明文件
4.5.2用YACC处理二义文法
4.5.3用LEX建立YACC的词法分析器
4.5.4YACC内部名称
习题
第5章语法制导翻译技术
5.1语法制导定义
5.1.1语法制导定义的形式
5.1.2综合属性
5.1.3继承属性
5.1.4依赖图
5.1.5计算次序
5.2S属性定义的自底向上翻译
5.2.1语法树
5.2.2构造表达式的语法树
5.2.3构造表达式的语法树的语法制导定义
5.2.4表达式的有向非循环图(dag)
5.2.5S属性定义的自底向上实现
5.3L属性定义
5.3.1L属性定义
5.3.2翻译方案
5.4L属性定义的自顶向下翻译
5.4.1消除翻译方案中的左递归
5.4.2预测翻译器的设计
5.5L属性定义的自底向上翻译
5.5.1从翻译方案中去掉嵌入的动作
5.5.2分析栈中的继承属性
5.5.3模拟继承属性的计算
5.5.4用综合属性代替继承属性
5.6非L属性定义的翻译
5.6.1从左到右遍历子结点
5.6.2其他遍历顺序
习题
第6章类型检查
6.1语义分析的概念
6.2类型体制
6.2.1类型表达式
6.2.2类型体制
6.2.3静态和动态类型检查
6.2.4错误恢复
6.3简单类型检查器的说明
6.3.1语言说明
6.3.2确定标识符的类型
6.3.3表达式的类型检查
6.3.4语句的类型检查
6.4类型表达式的等价
6.4.1类型表达式的结构等价
6.4.2类型表达式的名字等价
6.4.3类型表示中的环
6.5类型检查有关的其他主题
6.5.1函数和运算符的重载
6.5.2类型转换
6.5.3多态函数
6.6符号表
6.6.1建立和访问符号表的时机
6.6.2符号表的内容
6.6.3在符号表上的操作
6.6.4符号表的组织
习题
第7章运行时刻环境
7.1基本概念
7.1.1过程
7.1.2活动树
7.1.3控制栈
7.1.4声明的作用域
7.1.5名字的联编
7.2存储组织
7.2.1运行时刻内存的划分
7.2.2活动记录
7.2.3编译时局部数据的安排
7.3存储分配策略
7.3.1静态存储分配
7.3.2栈式存储分配
7.3.3堆式存储分配
7.4访问非局部名字
7.4.1程序块
7.4.2非嵌套过程的静态作用域
7.4.3嵌套过程的静态作用域
7.4.4动态作用域规则
7.5参数传递方式
7.5.1传值调用
7.5.2引用调用
7.5.3复制恢复
7.5.4传名调用
习题
第8章中间代码生成
8.1中间语言
8.1.1图示法
8.1.2三地址代码
8.1.3语法制导翻译生成三地址代码
8.2声明语句的翻译
8.2.1过程中的声明语句
8.2.2过程定义的处理
8.2.3记录声明的处理
8.3赋值语句的翻译
8.3.1表达式中仅涉及简单变量的情况
8.3.2表达式中涉及数组元素的情况
8.3.3记录中域的访问
8.4布尔表达式的翻译
8.4.1翻译布尔表达式的方法
8.4.2数值表示法
8.4.3控制流语句
8.4.4布尔表达式的控制流翻译
8.5CASE语句的翻译
8.6回填技术
8.6.1使用回填技术翻译布尔表达式
8.6.2使用回填技术翻译控制流语句
8.6.3标号和转移语句的翻译
8.7过程调用语句的翻译
习题
第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.3运行时的存储管理
9.3.1静态存储分配
9.3.2栈式存储分配
9.3.3运行时名字的地址
9.4基本块与控制流图
9.4.1基本块
9.4.2控制流图
9.5下次引用信息
9.6一个简单的代码生成器
9.6.1寄存器描述器和地址描述器
9.6.2函数getreg
9.6.3代码生成算法
9.6.4为其他类型的语句生成目标代码
习题
第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.3.4削弱计算强度
10.4窥孔优化
10.4.1冗余传送
10.4.2死代码
10.4.3控制流优化
10.4.4代数化简
10.4.5强度削弱
10.4.6利用机器的特点
10.5dag在代码优化中的应用
10.5.1基本块的dag的构造
10.5.2dag的应用
习题
第11章编译程序的设计与实现
11.1设计与实现方法
11.1.1编译程序的实现语言
11.1.2构造编译程序的自展方法
11.1.3构造编译程序的移植方法
11.1.4编译程序构造举例
11.2编译实践
11.2.1Sub_P语言说明
11.2.2Sub_P编译程序的设计说明
11.2.3Sub_P编译程序的测试
11.2.4设计报告要求
参考文献
猜您喜欢

读书导航