图书介绍
编译程序原理与技术2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

- 李赣生,王华民编著 著
- 出版社: 北京:清华大学出版社
- ISBN:7302026327
- 出版时间:1997
- 标注页数:341页
- 文件大小:49MB
- 文件页数:352页
- 主题词:编译程序
PDF下载
下载说明
编译程序原理与技术PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
序言1
1 引论1
1.1 什么是编译程序1
1.2 解释性程序1
1.3 编译程序的基本结构3
1.4 程序语言的语法与语义8
1.5 程序设计语言设计、编译程序设计及计算机设计之间的关系9
练习111
2 一个简单的编译程序13
2.1 语言(XL)概述13
2.2 XL的词法分析程序14
2.3 XL递归下降分析17
2.4 生成中间代码20
2.4.1 中间语言20
2.4.2 临时变量20
2.4.3 动作符号21
2.4.4 语义信息22
练习225
3 词法分析26
3.1 输入子系统26
3.2 词法分析的两个途径30
3.3 正规表达式31
3.3.1 基本定义32
3.3.2 正规表达式33
3.4 有限自动机35
3.5 从正规表达式到词法分析程序38
3.6 LEX——一个建立词法分析器的自动工具40
3.7 实践中的几个问题48
3.7.1 保留字48
3.7.2 向前看多字符问题49
3.7.3 词法错误的矫正50
3.8 正规表达式到有限自动机的转换51
3.8.1 把正规表达式转换为NFA51
3.8.2 从NFA到DFA的转换——子集构造法55
3.8.3 DFA的优化——极小化58
练习362
4 上下文无关文法与分析65
4.1 基本概念与定义65
4.2 推导与分析树67
4.3 文法的设计70
4.3.1 右线性文法71
4.3.2 验证由文法生成的语言72
4.3.3 消除歧义73
4.3.4 递归文法77
4.3.5 提左公因子80
4.4 文法分析算法81
4.4.1 空串非终结符81
4.4.2 FIRST集合及其计算82
4.4.3 FOLLOW集合及其计算83
4.5 上下文无关文法的限度85
练习486
5 LL(1)文法与分析器89
5.1 自上而下分析与下推自动机89
5.1.1 作为下推自动机的递归下降分析器91
5.1.2 利用下推自动机进行自上而下的分析算法92
5.2 LL(1)预测函数93
5.3 LL(1)分析表96
5.4 一个LL(1)分析表及驱动程序实例97
5.5 LL的自动生成工具100
5.5.1 LLama100
5.5.2 LLGen103
5.6 LL(1)文法的构造106
5.7 自上而下分析中的查错恢复问题108
练习5110
6 LR分析113
6.1 自下而上的分析过程——移入归约分析113
6.2 利用状态机实现对LR分析器的控制118
6.3 建立LR分析表的基本理论124
6.3.1 LR(0)文法124
6.3.2 SLR(1)文法130
6.3.3 LR(1)文法133
6.3.4 LALR(1)文法138
6.4 LR分析表的压缩表示146
6.5 歧义文法的利用150
6.6 LR分析中的查错恢复问题155
6.7 LALR(1)分析器的自动生成工具——YACC与OCCS156
6.7.1 YACC程序156
6.7.2 YACC中如何利用歧义文法158
6.7.3 利用Lex建立YACC的词法分析程序160
6.7.4 YACC中的查错恢复方法161
练习6162
7 语法制导的翻译166
7.1 增广文法166
7.2 属性文法169
7.3 LL分析中的语义处理技术174
7.3.1 表驱动的LL分析中使用的增广文法174
7.3.2 下推自动机中属性文法的实施174
7.3.3 LL中属性的$表示法175
7.4 LR分析中的语义处理技术176
7.4.1 LR分析中属性处理的特点176
7.4.2 一个LR语义处理流程的例子177
7.4.3 建立LR分析用的属性文法及LR分析中属性的$表示法178
7.4.4 嵌入动作与语法变换180
7.5 语义栈的类型描述182
7.6 中间语言表示——IR183
7.6.1 IR的一般形式183
7.6.2 C代码:一种简单的中间语言与虚拟机185
7.6.2.1 C虚拟机185
7.6.2.2 C虚拟机的存储管理186
7.6.2.3 C代码描述187
练习7195
8 符号表196
8.1 符号表模块的基本结构196
8.2 符号表数据库的数据结构197
8.3 一个分程序结构的哈希符号表201
8.3.1 基本数据结构201
8.3.2 分程序结构203
8.3.3 一种简单的分程序结构符号表的实现方法204
8.3.4 符号表的高级维护层205
练习8211
9 运行时存储器的组织214
9.1 静态分配214
9.2 栈式分配215
9.3 堆式分配219
9.4 静态键与动态键221
练习9223
10 声明的语义处理技术225
10.1 简单变量声明的处理225
10.2 结构与联合声明的处理232
10.3 枚举类型声明的处理236
10.4 函数声明与定义的处理238
10.5 分程序的处理245
练习10247
11 C代码生成器的接口gen()子程序249
练习11259
12 表达式的语义处理261
12.1 临时变量的分配261
12.2 左值与右值263
12.3 临时变量的表示——一种支持左右值实现的数据结构268
12.4 单目运算符的语义处理270
12.5 双目运算符的处理279
练习12284
13 控制语句的语义处理286
13.1 简单控制语句的语义处理287
13.2 条件语句的语义处理288
13.3 循环语句break与continue语句的语义处理290
13.4 switch语句的语义处理294
练习13299
14 代码优化301
14.1 分析器的优化301
14.2 线性(窥孔)优化301
14.2.1 强度削减302
14.2.2 常数折合与常数传播303
14.2.3 死变量与死代码305
14.2.4 窥孔优化之例308
14.3 语法树上的优化310
14.3.1 从逆波兰至语法树310
14.3.2 公共子表达式节省313
14.3.3 寄存器分配316
14.3.4 局部循环优化317
练习14318
15 代码的生成320
15.1 寄存器与临时单元的管理320
15.2 一个简单的代码生成器322
15.3 一个简单的寄存器分配方案324
15.4 从树生成代码329
15.5 代码生成器的自动化技术332
15.5.1 基于文法的代码生成器335
15.5.2 基于树重写的代码生成器的生成器337
练习15337
参考文献340
热门推荐
- 3027614.html
- 701659.html
- 334875.html
- 1464572.html
- 1340398.html
- 1501849.html
- 3610464.html
- 2674195.html
- 1069435.html
- 3333960.html
- http://www.ickdjs.cc/book_3602940.html
- http://www.ickdjs.cc/book_1883018.html
- http://www.ickdjs.cc/book_682126.html
- http://www.ickdjs.cc/book_1184918.html
- http://www.ickdjs.cc/book_1773180.html
- http://www.ickdjs.cc/book_786750.html
- http://www.ickdjs.cc/book_144860.html
- http://www.ickdjs.cc/book_1528851.html
- http://www.ickdjs.cc/book_2108702.html
- http://www.ickdjs.cc/book_741394.html