图书介绍
编译技术原理pdf电子书版本下载
- 姜文清编 著
- 出版社: 北京:国防工业出版社
- ISBN:7118011363
- 出版时间:1994
- 标注页数:301页
- 文件大小:13MB
- 文件页数:311页
- 主题词:
PDF下载
下载说明
编译技术原理PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如 BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第一章 引论 1
§1.1概述 1
第一章 引论 1
§1.1概述 1
§1.2 编译程序的构造 2
1.2.1 分析 2
§1.2 编译程序的构造 2
1.2.1 分析 2
1.2.3 错误的检查与恢复 5
1.2.2 符号表 5
1.2.2 符号表 5
1.2.3 错误的检查与恢复 5
1.2.4 综合 6
1.2.4 综合 6
§1.3 编译的预处理和后续处理 8
1.3.1预处理 8
§1.3 编译的预处理和后续处理 8
1.3.1预处理 8
1.3.3装入和连接 9
1.3.2 汇编 9
1.3.2 汇编 9
1.3.3装入和连接 9
§1.4 编译的遍 10
§1.4 编译的遍 10
§2.1 算术表达式的文法 11
2.1.1 语法图和语法结构树 11
2.1.1 语法图和语法结构树 11
§2.1 算术表达式的文法 11
第二章 简单的编译程序设计 11
第二章 简单的编译程序设计 11
2.1.2 上下文无关文法和语法树 12
2.1.2 上下文无关文法和语法树 12
§2.2 语法分析程序设计 15
2.2.1 确定的递归下降法 15
§2.2 语法分析程序设计 15
2.2.1 确定的递归下降法 15
2.2.2 确定的递归下降分析程序 17
2.2.2 确定的递归下降分析程序 17
§2.3 关于语义的形式描述 20
§2.3 关于语义的形式描述 20
§2.4 关于翻译的形式描述 22
§2.4 关于翻译的形式描述 22
§2.5 简单表达式求值 26
§2.5 简单表达式求值 26
2.6.1 标识符的识别 29
§2.6 词汇的识别 29
§2.6 词汇的识别 29
2.6.1 标识符的识别 29
2.6.2 数的识别 32
2.6.2 数的识别 32
2.6.3 词法分析程序 33
2.6.3 词法分析程序 33
§2.7 语法结构树的建立 34
§2.7 语法结构树的建立 34
第三章 词法分析 40
§3.1 概述 40
§3.1 概述 40
第三章 词法分析 40
§3.2 词汇、模式和词形 42
§3.2 词汇、模式和词形 42
§3.3 输入缓冲 43
§3.3 输入缓冲 43
§3.4 正规表达式 45
3.4.1 串和语言 45
3.4.1 串和语言 45
§3.4 正规表达式 45
3.4.2 正规表达式 47
3.4.2 正规表达式 47
3.4.3 正规定义 48
3.4.3 正规定义 48
§3.5 词法分析程序设计 49
3.5.1 词法分析器的规格说明 49
§3.5 词法分析程序设计 49
3.5.2 状态转换图 50
3.5.2 状态转换图 50
3.5.3 状态转换图的实现 53
3.5.3 状态转换图的实现 53
§3.6 软件工具Lex 56
3.6.1 Lex规格说明 56
§3.6 软件工具Lex 56
3.6.1 Lex规格说明 56
3.6.2 向前查看 59
3.6.2 向前查看 59
3.7.1 非确定的有穷自动机(NFA) 60
§3.7 有穷自动机 60
§3.7 有穷自动机 60
3.7.1 非确定的有穷自动机(NFA) 60
3.7.3 从NFA到DFA的转换 62
3.7.2 确定的有穷自动机(DFA) 62
3.7.2 确定的有穷自动机(DFA) 62
3.7.3 从NFA到DFA的转换 62
3.7.4 由正规表达式构造NFA 65
3.7.4 由正规表达式构造NFA 65
3.7.5 由正规表达式构造DFA 67
3.7.5 由正规表达式构造DFA 67
3.7.6 DFA的化简 72
3.7.6 DFA的化简 72
§4.1 概述 75
第四章 语法分析 75
第四章 语法分析 75
§4.1 概述 75
§4.2 上下文无关文法 76
4.2.1 上下文无关文法的定义 76
§4.2 上下文无关文法 76
4.2.1 上下文无关文法的定义 76
4.2.2 推导和语法树 77
4.2.2 推导和语法树 77
4.2.3 文法的二义性 79
4.2.3 文法的二义性 79
4.2.4 非上下文无关语言 81
4.2.4 非上下文无关语言 81
4.3.1 自顶向下分析法对文法的限制 82
§4.3 自顶向下分析的共同问题 82
4.3.1 自顶向下分析法对文法的限制 82
§4.3 自顶向下分析的共同问题 82
4.3.2 首符号集和后随符号集 83
4.3.2 首符号集和后随符号集 83
§4.4 LL(1)分析法 85
§4.4 LL(1)分析法 85
4.4.1 LL(1)文法 85
4.4.1 LL(1)文法 85
4.4.2 LL(1)分析器 86
4.4.2 LL(1)分析器 86
4.4.3 LL(1)分析的错误恢复 88
4.4.3 LL(1)分析的错误恢复 88
4.4.4 LL(1)分析表的构造 90
4.4.4 LL(1)分析表的构造 90
§4.5 自底向上分析的共同问题 93
§4.5 自底向上分析的共同问题 93
4.6.1 算符优先文法 95
§4.6 算符优先分析法 95
§4.6 算符优先分析法 95
4.6.1 算符优先文法 95
4.6.2 算符优先分析算法 97
4.6.2 算符优先分析算法 97
4.6.3 优先函数 99
4.6.3 优先函数 99
§4.7 LR分析法 100
4.7.1 LR分析器 100
§4.7 LR分析法 100
4.7.1 LR分析器 100
4.7.2 LR(0)分析表 104
4.7.2 LR(0)分析表 104
4.7.3 SLR分析表 108
4.7.3 SLR分析表 108
4.7.4 规范LR分析表 114
4.7.4 规范LR分析表 114
4.7.5 LALR分析表 119
4.7.5 LALR分析表 119
4.7.6 二义性文法的处理 126
4.7.6 二义性文法的处理 126
4.7.7 LR分析的错误恢复 129
4.7.7 LR分析的错误恢复 129
§4.8 软件工具Yacc 131
§4.8 软件工具Yacc 131
第五章 语法制导翻译 136
§5.1 语法制导定义 136
第五章 语法制导翻译 136
§5.1 语法制导定义 136
§5.2 属性的依赖关系 137
5.2.1 综合属性 137
§5.2 属性的依赖关系 137
5.2.1 综合属性 137
5.2.2 继承属性 138
5.2.2 继承属性 138
5.2.3 属性的依赖关系图 139
5.2.3 属性的依赖关系图 139
§5.3 语法结构树 141
§5.3 语法结构树 141
§5.4 S属性定义的求值 145
§5.4 S属性定义的求值 145
§5.5 L属性定义与翻译规程 147
§5.5 L属性定义与翻译规程 147
5.6.1 消除翻译规程中的左递归 150
§5.6 自顶向下翻译 150
§5.6 自顶向下翻译 150
5.6.1 消除翻译规程中的左递归 150
5.6.2 自顶向下翻译器的设计 154
5.6.2 自顶向下翻译器的设计 154
§5.7 L属性定义的求值 156
§5.7 L属性定义的求值 156
§5.8 属性值的存储与生存期 160
§5.8 属性值的存储与生存期 160
第六章 类型检查 168
§6.1 类型系统 168
第六章 类型检查 168
§6.1 类型系统 168
§6.2 类型检查器的规格说明 171
§6.2 类型检查器的规格说明 171
6.2.1 表达式的类型检查 172
6.2.1 表达式的类型检查 172
6.2.2 语句的类型检查 173
6.2.3 函数的类型检查 173
6.2.3 函数的类型检查 173
6.2.2 语句的类型检查 173
§6.3 类型表达式的等价性 174
6.3.1类型表达式的结构等价 174
§6.3 类型表达式的等价性 174
6.3.1类型表达式的结构等价 174
6.3.2 类型表达式的名称等价 176
6.3.2 类型表达式的名称等价 176
6.3.3 指针类型的循环定义 178
6.3.3 指针类型的循环定义 178
§6.4 类型转换 179
§6.4 类型转换 179
§6.5 函数和运算符的重载 181
§6.5 函数和运算符的重载 181
§7.1 中间语言 183
7.1.1图表示法 183
§7.1 中间语言 183
第七章 中间代码生成 183
7.1.1图表示法 183
第七章 中间代码生成 183
7.1.2 三地址代码 184
7.1.2 三地址代码 184
§7.2 关于说明的翻译 189
§7.2 关于说明的翻译 189
7.2.2 过程说明 190
7.2.1 变量说明 190
7.2.1 变量说明 190
7.2.2 过程说明 190
7.3.1 简单变量的访问 193
§7.3 赋值语句的翻译 193
7.3.1 简单变量的访问 193
7.2.3 记录说明 193
§7.3 赋值语句的翻译 193
7.2.3 记录说明 193
7.3.2 数组元素和记录的访问 196
7.3.2 数组元素和记录的访问 196
§7.4 布尔表达式的翻译 200
§7.4 布尔表达式的翻译 200
7.4.1 数值表示法 201
7.4.1 数值表示法 201
7.4.2 控制流表示法 202
7.4.2 控制流表示法 202
§7.5 CASE语句的翻译 205
§7.5 CASE语句的翻译 205
7.6.1 布尔表达式的翻译技术 208
§7.6 回填技术 208
§7.6 回填技术 208
7.6.1 布尔表达式的翻译技术 208
7.6.2 控制流语句 212
7.6.2 控制流语句 212
§7.7 过程调用 214
§7.7 过程调用 214
第八章 运行环境 216
§8.1 过程的活动态 216
§8.1 过程的活动态 216
第八章 运行环境 216
§8.2 存储器组织 220
§8.2 存储器组织 220
8.2.1 运行时存储器的划分 221
8.2.2 活动记录 221
8.2.2 活动记录 221
8.2.1 运行时存储器的划分 221
8.2.3 编译时局部数据的表示 222
8.2.3 编译时局部数据的表示 222
§8.3 存储分配策略 223
§8.3 存储分配策略 223
8.3.1 静态存储分配 224
8.3.1 静态存储分配 224
8.3.2 栈存储分配 226
8.3.2 栈存储分配 226
8.3.3 堆存储分配 229
8.3.3 堆存储分配 229
§8.4 非局部名称的访问 230
8.4.1 分程序 230
§8.4 非局部名称的访问 230
8.4.1 分程序 230
8.4.2 非嵌套过程的静态作用域 232
8.4.2 非嵌套过程的静态作用域 232
8.4.3 嵌套过程的静态作用域 233
8.4.3 嵌套过程的静态作用域 233
§8.5 参数传递 237
§8.5 参数传递 237
8.5.1 传值 237
8.5.1 传值 237
8.5.3 传值结果 239
8.5.2 传地址 239
8.5.3 传值结果 239
8.5.2 传地址 239
8.5.4传名 240
§8.6 符号表 240
8.5.4传名 240
§8.6 符号表 240
8.6.1 符号表项 241
8.6.1 符号表项 241
8.6.2 符号表的数据结构 242
8.6.2 符号表的数据结构 242
8.6.3 符号表中的作用域信息 243
8.6.3 符号表中的作用域信息 243
§8.7 动态存储分配 245
8.7.1 动态存储分配的语言设施 245
§8.7 动态存储分配 245
8.7.1 动态存储分配的语言设施 245
8.7.2 动态存储分配技术 247
8.7.2 动态存储分配技术 247
8.7.3 隐式存储回收 248
8.7.3 隐式存储回收 248
第九章 代码优化 251
9.1.1 程序优化 251
§9.1 概述 251
第九章 代码优化 251
9.1.1 程序优化 251
§9.1 概述 251
9.1.2 代码优化器的结构 252
9.1.2 代码优化器的结构 252
9.2.1 基本块及其划分 253
§9.2 基本块与控制流图 253
9.2.1 基本块及其划分 253
§9.2 基本块与控制流图 253
9.2.2 控制流图 254
9.2.2 控制流图 254
§9.3 基本块的优化 255
§9.3 基本块的优化 255
§9.4 局部优化 257
9.4.1 冗余的公共表达式 257
§9.4 局部优化 257
9.4.1 冗余的公共表达式 257
9.4.2 重复传送 258
9.4.2 重复传送 258
9.4.3 删除死块 259
9.4.4 循环优化 259
§9.5 循环优化 259
9.5.1 代码外移 259
9.5.2 归纳变量 259
9.5.1 代码外移 259
9.4.4 循环优化 259
§9.5 循环优化 259
9.5.2 归纳变量 259
9.4.3 删除死块 259
9.5.3 削弱计算强度 260
9.5.3 削弱计算强度 260
10.1.1 地址映射 262
10.1.1 地址映射 262
§10.1 代码生成器的设计要点 262
第十章 目标代码生成 262
§10.1 代码生成器的设计要点 262
第十章 目标代码生成 262
10.1.2 指令的选择 263
10.1.2 指令的选择 263
10.1.5 代码生成器的设计 264
10.1.3 寄存器的分配 264
10.1.4 求值顺序的选择 264
10.1.5 代码生成器的设计 264
§10.2 目标机器 264
10.1.4 求值顺序的选择 264
10.1.3 寄存器的分配 264
§10.2 目标机器 264
§10.3 运行时的存储管理 266
§10.3 运行时的存储管理 266
10.3.1 静态存储分配 267
10.3.1 静态存储分配 267
10.3.2 栈存储分配 268
10.3.2 栈存储分配 268
§10.4 名称的引用信息 271
10.3.3 运行时名称的地址 271
10.3.3 运行时名称的地址 271
§10.4 名称的引用信息 271
§10.5 简单的代码生成器 272
§10.5 简单的代码生成器 272
10.5.1 代码生成算法 273
10.5.1 代码生成算法 273
10.5.2 函数getreg 274
10.5.2 函数getreg 274
10.5.3 其它语句的代码生成 275
10.5.3 其它语句的代码生成 275
§10.6 窥孔优化 277
10.6.1 冗余传送 277
§10.6 窥孔优化 277
10.6.1 冗余传送 277
10.6.2 死代码 278
10.6.3 控制流优化 278
10.6.3 控制流优化 278
10.6.2 死代码 278
习题 280
习题 280
实验题 296
实验题 296
参考文献 301
参考文献 301