本书系统、全面地介绍了编译程序的基本原理、实现技术、方法和工具。在全书的安排上,首先介绍了编译程序的定义、结构、组织以及文法和语言的相关知识;然后以编译程序的结构为主线介绍了词法分析、语法分析、语法制导翻译与中间代码生成、代码优化和目标代码生成,另外,本书还涉及到运行时的存储管理以及符号表,并对词法分析、语法分析程序的生成工具LEX、YACC以及面向对象语言的编译进行了简要的介绍。在基本概念和基本理论的阐述上做到准确清楚,在内容的组织上做到循序渐进、深入浅出、通俗易懂, 精心挑选的习题可以使学习者对自己的掌握情况有较好的把握。 本书可以作为的大专生、生和的,也可以作为计算机科技工作者的参考书。
目录
- 章 引论
- 1.1 什么是编译程序
- 1.2 编译程序的基本结构
- 1.3 编译程序的组织
- 习题
- 第2章 文法和语言
- 2.1 字母表和符号串
- 2.2 文法和语言的形式定义
- 2.3 语法树和文法的二义性
- 2.4 文法的类型
- 习题
- 第3章 词法分析
- 3.1 有穷自动机
- 3.2 正规集、正规文法和正规式
- 3.3 正规文法与有穷自动机
- 3.4 正规式与NFA
- 3.5 DFA的化简
- 3.6 单词的分类表示
- 3.7 词法分析器的任务与设计考虑
- 3.8 词法分析器的设计与实现
- 习题
- 第4章 自顶63'F的语法分析
- 4.1 左递归和回溯
- 4.2 FIRST和FOLLOW集合的构造
- 4.3 LL(1)文法
- 4.4 LL(1)分析法
- 4.5 递归下降法
- 习题
- 第5章 自底向上的语法分析
- 5.1 自底向上语法分析概述
- 5.2 短语、直接短语及句柄
- 5.3 简单优先分析法
- 5.4 算符优先分析法
- 习题
- 第6章 自底向上的LR分析法
- 6.1 LR分析的基本原理
- 6.2 LR分析器的逻辑结构
- 6.3 LR(0)分析表的构造
- 6.4 SLR分析表的构造
- 6.5 LR分析器总控程序
- 6.6 LR(1)分析表的构造
- 6.7 IALR(1)分析表的构造
- 习题
- 第7章 语法制导翻译与中间代码生成
- 7.1 属性文法
- 7.2 自底向上语法制导翻译概述
- 7.3 中间代码
- 7.4 简单说明语句的翻译
- 7.5 简单算术表达式和赋值语句的翻译
- 7.6 布尔表达式的翻译
- 7.7 控制流语句的翻译
- 7.8 含数组元素的赋值语句和说明语句的翻译
- 7.9 过程调用和返回语句的翻译
- 7.10 开关语句的翻译
- 7.11 结构说明的翻译
- 7.12 参数的传递
- 习题
- 第8章 运行时的存储管理
- 8.1 存储组织
- 8.2 静态存储分配
- 8.3 栈式存储分配
- 8.4 堆式存储分配
- 习题
- 第9章 符号表
- 9.1 符号表的作用
- 9.2 符号表的主要属性
- 9.3 符号表的组织
- 9.4 分程序结构符号表的管理
- 习题
- 0章 代码优化
- 10.1 基本块与程序控制流图
- 1章 目标代码生成
- 2章 词汇分析程序生在成器LEX
- 3章 语法分析程序生成工具YACC
- 4章 面向对象语言的编译
- 参考文献