-
内容大纲
本书以全新的视角透视编译技术,围绕编译中的词法分析、语法分析、语法制导的翻译、语义分析和中间代码生成、运行环境和目标代码生成、代码优化这6个核心问题展开,共分7章。本书重点针对编译器构造方法学展开分析和论述,以揭示编译技术的内涵,展示其优美性和艺术性。本书也探索技术演进背后的动因,追踪业界最新技术及其发展趋势,帮助读者灵活应对IT技术发展与变迁所带来的挑战。
本书内容新颖、通俗易懂,特别适合作为高等院校计算机及相关专业的教材,也可以作为工程技术培训的教材。本书也非常适合科研人员和工程技术人员阅读,从中感悟编译技术的内涵,体会其精妙之处。 -
作者介绍
-
目录
第1章 编译技术概述
1.1 计算模型和机器语言的性
1.2 程序语言及其性
1.3 编译方法及过程
1.3.1 源程序的构成性
1.3.2 编译过程
1.3.3 编译器的结构性
1.4 编译器构造方法学
1.5 编译前对源程序文本的预处理
1.6 程序调试
1.7 编译执行和解释执行
1.8 编译方式的演进
1.9 虚拟机
1.10 程序语言的发展历程
1.11 当前主流的编译器产品
1.12 编译知识的广泛应用
1.13 本章小结
知识拓展: 别名的概述
习题
第2章 词法分析
2.1 程序语言的词构成性
2.2 词法的描述
2.2.1 正则语言和正则运算
2.2.2 C语言词法的正则描述
2.2.3 词法分析的实现框架
2.2.4 正则表达式的含义
2.3 基于状态转换图的词法分析
2.3.1 基于状态转换图的匹配判断
2.3.2 状态转换图的征
2.3.3 基于状态转换图的通用词法分析器
2.4 正则表达式的状态转换图自动生成方法
2.4.1 正则表达式的NFA原生构造方法
2.4.2 基于NFA的匹配判断算法
2.4.3 基于NFA的DFA构造方法
2.4.4 正则表达式的简NFA构造法
2.4.5 殊正则表达式的简NFA构造
2.4.6 NFA和DFA中状态属性值的确定方法
2.4.7 正则表达式之间的含关系
2.5 正则表达式及其DFA在文本搜索中的应用
2.6 本章小结
知识拓展: NFA和DFA构造中涉及的数据结构
习题
第3章 语法分析
3.1 程序的树结构性
3.2 语言的语法描述
3.3 词串的语法分析树及其构造策略
3.4 语法描述和词法描述的比较
3.5 自向下和左推导的语法分析
3.5.1 自向下和左推导的语法分析过程
3.5.2 左递归及其方法
3.5.3 左公因子及其提取方法
3.5.4 推导中的产生式选择
3.5.5 FIRST和FOLLOW函数值求解算法
3.5.6 LL(1)文法性及其语法分析表
3.5.7 二义性文法的可改造性
3.5.8 基于LL(1)语法分析表和符号栈的语法分析器通用代码
3.6 自底向上的语法分析
3.6.1 自底向上的语法分析及有待解决的关键问题
3.6.2 文法的DFA构造方法
3.6.3 基于状态栈和文法DFA的LR语法分析
3.6.4 基于FOLLOW函数值的冲突解决方法
3.6.5 基于语法分析表的LR语法分析通用代码
3.6.6 基于FOLLOW确化的冲突解决方法
3.7 LL语法分析和LR语法分析的对比
3.8 LR文法设计
3.8.1 DFA物理含义的挖掘和应用
3.8.2 尽量减少文法中的非结符数量
3.8.3 非结符语义的宽泛化
3.8.4 文法的二义性及其方法
3.8.5 LALR(1)型DFA的收益和代
3.8.6 文法的上下文无关性
3.9 LR语法分析中错误的恢复
3.10 本章小结
知识拓展: 语法分析表构造中涉及的数据结构
习题
第4章 语法制导的翻译
4.1 LR分析中的语法制导翻译
4.1.1 LR分析中的语法制导翻译简介
4.1.2 LR分析中语法制导的翻译实现框架
4.1.3 词法分析器构造工具的实现
4.2 LL分析中语法制导的翻译
4.2.1 LL分析中语法制导的翻译简介
4.2.2 LL分析中语法制导的翻译实现框架
4.3 从LR型SDT得出LL型SDT
4.4 LR语法分析中对继承属性的处理
4.5 本章小结
习题
第5章 语义分析与中间代码生成
5.1 语义分析和中间代码生成简介
5.1.1 程序的层级结构
5.1.2 类型的语义分析
5.1.3 变量的语义分析
5.1.4 函数的语义分析
5.1.5 中间语言简介
5.1.6 中间代码生成简介
5.2 类型和变量的语义分析框架
5.3 类型和变量定义的SDT设计
5.3.1 程序语言中的指针语义
5.3.2 类型和变量定义的文法设计
5.3.3 类型和变量定义的语义分析及其SDD设计
5.3.4 类型和变量定义的语义分析SDT设计
5.4 变量使用的SDT设计
5.4.1 变量地址的确定方法
5.4.2 描述变量使用的文法
5.4.3 变量使用的语义分析和中间代码生成SDD设计
5.4.4 变量使用的语义分析和中间代码生成SDT设计
5.5 运算的语义分析和中间代码生成
5.6 类型系统
5.7 分支语句的中间代码生成
5.7.1 分支语句的文法
5.7.2 分支语句的中间代码生成SDD设计
5.7.3 分支语句的中间代码生成SDT设计
5.7.4 分支语句中break和continue语句的处理
5.8 函数调用的语义分析和中间代码生成
5.9 本章小结
习题
第6章 运行环境和目标代码生成
6.1 函数调用
6.1.1 局变量的静态存储分配方案
6.1.2 局变量的动态存储分配方案
6.1.3 相对寻址方式带来的好处
6.1.4 形参和数组的动态性
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.6 面向对象中的多态
6.6.1 面向对象编程问题的揭示
6.6.2 基于代理的解耦和封装实现方案
6.6.3 基于多态的面向对象编程问题解决方案
6.6.4 接口性
6.6.5 接口获取
6.7 本章小结
习题
第7章 代码化
7.1 中间代码的化
7.1.1 基本块和流图
7.1.2 中间代码化途径
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.3.5 寄存器腾空和变量溢出
7.3.6 同步函数和异步函数
7.4 基于机器其他性的代码化
7.4.1 基于指令流水线处理的代码化
7.4.2 基于高速缓存的代码化
7.4.3 基于多核处理器的代码化
7.4.4 大数据处理和云计算中的化
7.5 本章小结
习题
参考文献
同类热销排行榜
- C语言与程序设计教程(高等学校计算机类十二五规划教材)16
- 电机与拖动基础(教育部高等学校自动化专业教学指导分委员会规划工程应用型自动化专业系列教材)13.48
- 传感器与检测技术(第2版高职高专电子信息类系列教材)13.6
- ASP.NET项目开发实战(高职高专计算机项目任务驱动模式教材)15.2
- Access数据库实用教程(第2版十二五职业教育国家规划教材)14.72
- 信号与系统(第3版下普通高等教育九五国家级重点教材)15.08
- 电气控制与PLC(普通高等教育十二五电气信息类规划教材)17.2
- 数字电子技术基础(第2版)17.36
- VB程序设计及应用(第3版十二五职业教育国家规划教材)14.32
- Java Web从入门到精通(附光盘)/软件开发视频大讲堂27.92
推荐书目
-
孩子你慢慢来/人生三书 华人世界率性犀利的一枝笔,龙应台独家授权《孩子你慢慢来》20周年经典新版。她的《...
-
时间简史(插图版) 相对论、黑洞、弯曲空间……这些词给我们的感觉是艰深、晦涩、难以理解而且与我们的...
-
本质(精) 改革开放40年,恰如一部四部曲的年代大戏。技术突变、产品迭代、产业升级、资本对接...