科学出版社旗舰店店铺主页二维码
科学出版社旗舰店 微信认证
科学出版社秉承多年来形成的“高层次、高水平、高质量”和“严肃、严密、严格”的优良传统与作风,始终坚持为科技创新服务、为传播与普及科学知识服务、为科学家和广大读者服务的宗旨。
微信扫描二维码,访问我们的微信店铺
你可以使用微信联系我们,随时随地的购物、客服咨询、查询订单和物流...

编译原理/李维华 岳昆 周小兵

46.60
运费: ¥ 0.00-18.00
编译原理/李维华 岳昆 周小兵 商品图0
编译原理/李维华 岳昆 周小兵 商品图1
编译原理/李维华 岳昆 周小兵 商品图2
编译原理/李维华 岳昆 周小兵 商品缩略图0 编译原理/李维华 岳昆 周小兵 商品缩略图1 编译原理/李维华 岳昆 周小兵 商品缩略图2

商品详情

书名:编译原理
定价:59.0
ISBN:9787030734396
版次:1
出版时间:2022-10

内容提要:
本书围绕编译程序分析、设计和实现方面的主题,介绍上下文无关文法、有限自动机的基础知识,以及构造程序设计语言编译程序的一般原理、设计方法和实现技术,包括词法分析、语法分析、语义分析、中间代码生成、目标代码生成、运行时刻环境和代码优化;设计了一个案例语言,给出该语言翻译器的分析、设计和实现的完整过程;介绍了开源编译器GCC的逻辑结构、典型中间代码形式和存储管理策略,也围绕目标文件介绍了汇编和链接。



目录:
目录
第1章 引论 1
1.1 编译器 1
1.2 编译器的结构 2
1.2.1 词法分析 3
1.2.2 语法分析 3
1.2.3 语义分析 4
1.2.4 中间代码生成 4
1.2.5 代码优化 5
1.2.6 目标代码生成 5
1.2.7 编译器的组织 5
1.3 GCC概述 6
1.3.1 GCC的语言处理过程 6
1.3.2 GCC的逻辑结构 7
1.4 编译程序的发展 8
1.4.1 程序设计语言的发展 8
1.4.2 编译技术的发展 8
习题 9
第2章 上下文无关文法和分析 10
2.1 概述 10
2.2 符号串及运算 11
2.3 文法 12
2.3.1 上下文无关文法的定义 12
2.3.2 推导和归约 13
2.3.3 文法定义的语言 14
2.3.4 文法的分类 15
2.3.5 文法在应用中的说明 17
2.4 语法树 18
2.4.1 语法树的定义 18
2.4.2 文法的二义性 20
2.4.3 短语和句柄 21
习题 22
第3章 词法分析 25
3.1 正规表达式 25
3.2 有限自动机 26
3.2.1 确定的有限自动机 27
3.2.2 非确定的有限自动机 28
3.2.3 含e的非确定的有限自动机 28
3.2.4 非确定有限自动机的确定化 29
3.2.5 确定有限自动机的最小化 31
3.3 正规表达式和有限自动机 32
3.3.1 从正规表达式到有限自动机 32
3.3.2 从有限自动机到正规表达式 33
3.4 有限自动机和正规文法 35
3.5 词法分析程序 36
3.5.1 DFA的实现 36
3.5.2 词法分析程序实现应考虑的问题 37
习题 39
第4章 语法分析 42
4.1 自顶向下的语法分析 42
4.1.1 确定的自顶向下语法分析 42
4.1.2 LL(1)文法 46
4.1.3 左递归和左公因子的消除 49
4.1.4 递归下降的语法分析 51
4.1.5 表驱动的语法分析 53
4.2 自底向上的语法分析 55
4.2.1 移进-归约的语法分析 55
4.2.2 LR语法分析 57
4.2.3 项目和项目集 60
4.2.4 LR(0)分析表构造 62
4.2.5 SLR(1)分析表构造 64
4.2.6 LR(1)分析表构造 66
4.2.7 LALR(1)分析表构造 68
4.3 语法错误的恢复 71
4.3.1 递归下降分析中的语法错误的恢复 71
4.3.2 LL分析中的语法错误的恢复 73
4.3.3 LR语法分析中的语法错误的恢复 74
习题 75
第5章 语义分析 77
5.1 语义分析概述 77
5.2 属性文法 78
5.2.1 属性文法及相关概念 78
5.2.2 语法制导定义 80
5.3 属性计算 81
5.3.1 依赖图 81
5.3.2 属性的计算顺序 83
5.3.3 S属性和L属性的语法制导定义 83
5.4 语法制导翻译 85
5.4.1 自顶向下语法分析中属性计算 85
5.4.2 自底向上语法分析中综合属性计算 92
5.4.3 自底向上语法分析中继承属性计算 94
5.5 符号表 98
5.5.1 符号表的作用 98
5.5.2 符号的属性和存储方法 99
5.5.3 符号表的设计 103
5.5.4 符号表的管理 105
5.5.5 嵌套作用域的管理 105
5.6 声明 109
5.7 类型检查 110
5.7.1 类型表达式 110
5.7.2 类型检查规则 112
5.7.3 类型转换 112
习题 113
第6章 中间代码生成 119
6.1 中间代码概述 119
6.1.1 线性中间代码 119
6.1.2 树型中间代码 121
6.1.3 图式中间代码 121
6.2 赋值语句的翻译 122
6.2.1 简单赋值语句的翻译 123
6.2.2 数组引用的翻译 125
6.3 布尔表达式的翻译 127
6.3.1 直接对布尔表达式求值 128
6.3.2 通过控制流翻译布尔表达式 129
6.4 典型控制结构的翻译 132
6.5 GCC的中间代码 134
6.5.1 GENERIC 134
6.5.2 GIMPLE 135
6.5.3 RTL 136
习题 137
第7章 运行时刻环境 139
7.1 存储组织 139
7.1.1 程序运行时的内存映像 139
7.1.2 存储分配策略 139
7.2 活动记录 141
7.2.1 活动记录的一般结构 141
7.2.2 变长数据的分配 143
7.3 基于栈的过程管理 143
7.3.1 过程调用和返回 143
7.3.2 过程间的值传递 145
7.4 非局部变量的访问 147
7.4.1 无嵌套过程的非局部变量 148
7.4.2 过程嵌套定义的非局部变量 148
7.5 GCC的存储管理策略 151
7.5.1 程序运行时的内存映像 151
7.5.2 x86-64栈结构 152
7.5.3 函数和参数 153
习题 156
第8章 代码优化 160
8.1 基本块和流图 160
8.1.1 基本块 160
8.1.2 流图 161
8.1.3 循环 161
8.2 数据流分析 163
8.2.1 数据流分析模式 163
8.2.2 到达定值分析 163
8.2.3 活跃变量分析 166
8.2.4 可用表达式分析 167
8.3 窥孔优化 170
8.4 基本块的优化 171
8.4.1 基本块的有向无环图表示 172
8.4.2 基于DAG的代码重建 175
8.5 循环优化 175
8.5.1 代码外提 175
8.5.2 归纳变量相关的优化 178
习题 179
第9章 目标代码生成 182
9.1 代码生成的主要问题 182
9.1.1 指令选择 182
9.1.2 寄存器分配 183
9.1.3 指令调度 183
9.2 一个简单的代码生成器 184
9.2.1 目标语言 184
9.2.2 一个目标代码生成算法 186
9.2.3 表达式优化代码的生成 189
9.3 基于图着色的寄存器分配 191
9.4 目标文件 192
9.4.1 目标文件格式 193
9.4.2 汇编 195
9.4.3 链接 197
习题 199
第10章 简单语言的翻译程序 202
10.1 源语言及其定义 202
10.1.1 语法定义 202
10.1.2 其他约束 204
10.2 词法分析的实现 205
10.2.1 词法记号 205
10.2.2 词法单元的定义 206
10.2.3 单词的识别 206
10.3 语法分析的实现 208
10.3.1 文法的分析和变换 208
10.3.2 递归下降的语法分析程序 209
10.4 符号表的实现 210
10.4.1 符号表的设计 210
10.4.2 符号表的管理 212
10.5 中间代码生成 213
10.5.1 中间代码的定义 214
10.5.2 生成中间代码的构造 215
10.5.3 中间代码生成和优化 220
10.6 目标代码生成 221
10.6.1 虚拟目标机 221
10.6.2 运行时刻环境 223
10.6.3 从中间代码到目标代码的转换 224
10.6.4 虚拟机解释程序 225
10.7 课程设计 226
参考文献 229
科学出版社旗舰店店铺主页二维码
科学出版社旗舰店 微信公众号认证
科学出版社秉承多年来形成的“高层次、高水平、高质量”和“严肃、严密、严格”的优良传统与作风,始终坚持为科技创新服务、为传播与普及科学知识服务、为科学家和广大读者服务的宗旨。
扫描二维码,访问我们的微信店铺
随时随地的购物、客服咨询、查询订单和物流...

编译原理/李维华 岳昆 周小兵

手机启动微信
扫一扫购买

收藏到微信 or 发给朋友

1. 打开微信,扫一扫左侧二维码

2. 点击右上角图标

点击右上角分享图标

3. 发送给朋友、分享到朋友圈、收藏

发送给朋友、分享到朋友圈、收藏

微信支付

支付宝

扫一扫购买

打开微信,扫一扫

或搜索微信号:sciencepress-cspm
科学出版社官方微信公众号

收藏到微信 or 发给朋友

1. 打开微信,扫一扫左侧二维码

2. 点击右上角图标

点击右上角分享图标

3. 发送给朋友、分享到朋友圈、收藏

发送给朋友、分享到朋友圈、收藏