图书介绍
编译原理与技术pdf电子书版本下载
- 冯雁主编 著
- 出版社: 杭州:浙江大学出版社
- ISBN:7308038025
- 出版时间:2004
- 标注页数:320页
- 文件大小:13MB
- 文件页数:331页
- 主题词:编译程序-程序设计-高等学校-教材
PDF下载
下载说明
编译原理与技术PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如 BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 引论 1
1.1 什么是编译程序 1
1.2 编译器的基本阶段 2
1.2.1 词法分析程序 3
1.2.2 语法分析程序 4
1.2.3 语义分析程序 5
1.2.4 中间代码生成器 6
1.2.5 代码优化程序 6
1.2.6 目标代码生成器 6
1.2.7 符号表管理 7
1.2.8 错误处理 8
1.3 与编译器有关的程序 8
1.3.1 解释程序 8
1.3.2 汇编程序 8
1.3.3 链接和装入程序 8
1.3.4 预处理器 9
1.3.5 调试程序 9
1.4 一个简单的编译程序 9
1.4.1 语言概述 9
1.4.2 词法分析程序 10
1.4.3 递归下降语法分析 14
1.4.4 中间代码生成及优化 16
练习 20
第2章 词法分析 22
2.1 扫描处理及缓冲 22
2.2 正规表达式 26
2.3 有限自动机 30
2.3.1 确定有限自动机 31
2.3.2 非确定有限自动机 37
2.4 从正则表达式到有限自动机 39
2.4.1 从正规式到NFA 39
2.4.2 从NFA到DFA 42
2.4.3 状态数最小化 46
2.5 词法分析中要解决的几个问题 47
2.6 利用LEX建立词法分析器 49
练习 58
第3章 上下文无关文法与语言 60
3.1 上下文无关文法的基本概念和定义 60
3.2 分析和推导 62
3.2.1 分析和推导 62
3.2.2 分析树 65
3.2.3 二义文法 66
3.3 文法的设计 68
3.3.1 验证由文法产生的语言 68
3.3.2 消除二义性 69
3.3.3 消除左递归 72
3.3.4 提取左因子 75
3.4 乔姆斯基层次及上下文无关文法的局限 77
练习 79
第4章 自顶向下语法分析 82
4.1 递归程序实现预测语法的分析器 82
4.2 非递归预测分析法 84
4.3 First集和Follow集概念及构造 86
4.4 预测分析表构造 90
4.5 LL(1)文法 92
4.6 预测分析中的错误恢复方法 95
练习 96
第5章 自下而上语法分析 101
5.1 自底向上方法概述 101
5.2 算符优先分析法 104
5.2.1 算符优先分析算法 106
5.2.2 优先函数 108
5.2.3 算符优先分析中的出错处理 109
5.3 LR语法分析器基本思想与概念 112
5.3.1 LR文法 116
5.4 SLR语法分析表构造 122
5.5 规范LR语法分析表构造 126
5.6 LALR语法分析表构造 130
5.7 LR语法分析表的压缩 136
5.8 LR语法分析中的错误恢复 139
5.9 二义性文法应用 141
5.9.1 使用优先级与结合规则解决动作的冲突 142
5.9.2 悬空else的二义性 144
5.9.3 特例产生式引起的二义性 145
5.10 语法分析器自动生成工具YACC 145
5.10.1 YACC工具介绍 145
5.10.2 用YACC处理二义性 148
5.10.3 用LEX建立YACC的词法分析器 150
5.10.4 YACC中的错误恢复 150
练习 152
第6章 语法制导翻译 156
6.1 语法制导定义 157
6.2 属性的计算 157
6.2.1 属性和属性语法 157
6.2.2 依赖图 162
6.2.3 计算次序 165
6.2.4 自底向上计算继承属性 172
6.2.5 临时属性的计算和外部数据结构 175
6.2.6 Knuth定理 180
6.3 类型检查 180
6.3.1 类型系统 181
6.3.2 类型表达式的等价 189
6.3.3 类型推论和类型检查 196
6.3.4 类型转换 199
6.3.5 重载 200
6.3.6 多态函数 200
6.4 符号表 202
6.4.1 符号表的表项和符号表的操作 202
6.4.2 声明和同层声明 203
6.4.3 符号表的数据结构 207
6.4.4 作用域规则和块结构 210
练习 214
第7章 运行时环境 219
7.1 存储组织及存储分配策略 219
7.2 静态分配 222
7.3 栈式 224
7.3.1 没有局部过程的基于栈的环境 225
7.3.2 带有局部过程的基于栈的运行时环境 232
7.3.3 带有过程参数的基于栈的运行时环境 235
7.4 堆式 238
7.5 参数传递 242
7.5.1 值传递 242
7.5.2 引用传递 243
7.5.3 值—结果传递 245
7.5.4 名字传递 245
练习 246
第8章 中间代码生成 250
8.1 中间语言 251
8.1.1 后缀式 251
8.1.2 图表示法 251
8.1.3 三地址代码 253
8.2 说明语句 257
8.2.1 过程中的说明语句 258
8.2.2 保留作用域信息 258
8.2.3 记录中的域名 261
8.3 赋值语句的翻译 261
8.3.1 简单算术表达式及赋值语句 261
8.3.2 数组元素的引用 262
8.3.3 记录中域的引用 269
8.4 布尔表达式的翻译 269
8.4.1 数值表示法 270
8.4.2 作为条件控制的布尔式表达翻译 272
8.5 控制语句的翻译 277
8.5.1 控制流语句 277
8.5.2 标号与goto语句 281
8.5.3 CASE语句的翻译 283
8.6 过程调用的处理 285
练习 287
第9章 代码生成和代码优化 289
9.1 代码生成器中的基本问题 289
9.2 目标机器 292
9.3 寄存器与临时单元的管理 293
9.4 一个简单的代码生成器 294
9.5 一个简单的寄存器分配方案 296
9.6 代码生成器的自动化技术 301
9.6.1 基于文法的代码生成器 304
9.7 代码优化 306
9.7.1 分析器优化 306
9.7.2 线性优化 306
9.7.3 语法树上的优化 310
练习 314
参考文献 319