图书介绍
编译原理基础pdf电子书版本下载
- 刘坚编著 著
- 出版社: 西安:西安电子科技大学出版社
- ISBN:7560611117
- 出版时间:2002
- 标注页数:176页
- 文件大小:8MB
- 文件页数:184页
- 主题词:编译程序-程序设计-高等学校-教材
PDF下载
下载说明
编译原理基础PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如 BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 引言 1
1.1 从面向机器的语言到面向人类的语言 1
1.2 语言之间的翻译 2
1.3 编译器与解释器 3
1.4 编译器的工作原理与基本组成 4
1.4.1 通用程序设计语言的主要成份 4
1.4.2 以阶段划分编译器 5
1.4.3 编译器各阶段的工作 6
1.4.4 编译器的分析/综合模式 11
1.4.5 编译器扫描的遍数 11
1.5 编译器的编写 12
1.6 本章小结 12
习题 13
第2章 词法分析 14
2.1 词法分析中的若干问题 14
2.1.1 记号、模式与单词 14
2.1.2 记号的属性 15
2.1.3 词法分析器的作用与工作方式 16
2.1.4 输入缓冲区 17
2.2 模式的形式化描述 19
2.2.1 字符串与语言 19
2.2.2 正规式与正规集 20
2.2.3 记号的说明 21
2.3 记号的识别——有限自动机 23
2.3.1 不确定的有限自动机(Nondeterministic Finite Automata,NFA) 23
2.3.2 确定的有限自动机(Deterministic Finite Automata,DFA) 25
2.3.3 有限自动机的等价 27
2.4 从正规式到词法分析器 27
2.4.1 从正规式到NFA 27
2.4.2 从NFA到DFA 29
2.4.3 最小化DFA 33
2.4.4 由DFA构造词法分析器 35
2.4.5 词法分析器生成器简介 37
2.5 本章小结 38
习题 39
第3章 语法分析 42
3.1 语法分析的若干问题 42
3.1.1 语法分析器的作用 42
3.1.2 语法错误的处理原则 43
3.2 上下文无关文法(Context Free Grammar,CFG) 44
3.2.1 CFG的定义与表示 44
3.2.2 CFG产生语言的基本方法——推导 46
3.2.3 推导、分析树与语法树 47
3.2.4 二义性与二义性的消除 48
3.2.4.1 二义性(Ambiguity) 48
3.3.4.2 二义性的消除 50
3.3 语言与文法简介 53
3.3.1 正规式与上下文无关文法 54
3.3.2 上下文有关语言(ContextSensitiveLanguage,CSL) 55
3.3.3 形式语言与自动机简介 56
3.4.1 自上而下分析的一般方法 58
3.4 自上而下语法分析 58
3.4.2 消除左递归 59
3.4.3 提取左因子 61
3.4.4 递归下降分析 61
3.4.5 预测分析器 65
3.4.5.1 非递归预测分析器的工作模式 65
3.4.5.2 构造预测分析表 68
3.4.5.3 LL(1)文法 70
3.5 自下而上语法分析 71
3.5.1 自下而上分析的基本方法 72
3.5.1.1 规范归约与“剪句柄” 72
3.5.1.2 移进—归约分析器的工作模式 74
3.5.2 LR分析 75
3.5.2.1 LR分析与LR文法 75
3.5.2.2 构造SLR(1)分析器 78
3.5.2.3 非SLR(1)文法 84
3.5.2.4 基于LR分析的语法分析器生成器简介 85
3.6 本章小结 86
习题 87
第4章 语法制导翻译生成中间代码 90
4.1 语法制导翻译简介 90
4.1.1 语法与语义 90
4.1.2 属性与语义规则 91
4.1.3 语义规则的两种形式 92
4.1.4 LR分析翻译方案的设计 93
4.1.5 递归下降分析翻译方案的设计 94
4.2 中间代码简介 96
4.2.1 后缀式 96
4.2.2 三地址码 97
4.2.2.1 三地址码的直观表示 97
4.2.2.2 三地址码的实现:三元式与四元式 98
4.2.3 图形表示 101
4.3 符号表简介 103
4.3.1 符号表条目 103
4.3.2 构成名字的字符串 104
4.3.3 名字的作用域 105
4.3.4 线性表 106
4.3.5 散列表 106
4.4 声明语句的翻译 109
4.4.1 变量的声明 109
4.4.2 数组变量的声明 111
4.4.3 过程的定义与声明 115
4.4.3.1 左值与右值 116
4.4.3.2 参数传递 117
4.4.3.3 作用域信息的保存 121
4.4.4 记录的域名 126
4.5 简单算术表达式与赋值句 126
4.5.1 简单变量的语法制导翻译 127
4.5.2 变量的类型转换 127
4.6 数组元素的引用 130
4.6.1 数组元素的地址计算 130
4.6.2 数组元素引用的语法制导翻译 131
4.7.1 布尔表达式的作用与结构 134
4.7 布尔表达式 134
4.7.2 布尔表达式的计算方法 135
4.7.3 数值表示与直接计算的语法制导翻译 136
4.7.4 短路计算的语法制导翻译 137
4.7.5 拉链与回填 138
4.8 控制语句 140
4.8.1 标号与无条件转移 141
4.8.2 条件转移 142
4.9 过程调用 145
4.10 本章小结 146
习题 147
第5章 运行环境 150
5.1 过程的动态特性 150
5.1.1 过程与活动 150
5.1.2 控制栈与活动记录 152
5.1.3 名字的绑定 153
5.2.1 运行时内存的划分与数据空间的存储分配策略 154
5.2 运行时数据空间的组织 154
5.2.2 静态与动态分配简介 155
5.3 栈式动态分配 157
5.3.1 控制栈中的活动记录 157
5.3.2 调用序列与返回序列 158
5.3.3 栈式分配中对非本地名字的访问 159
5.3.4 参数传递的实现 162
5.4 本章小结 164
习题 165
6.1 代码生成的相关问题 167
第6章 代码生成 167
6.2 简单的计算机模型 168
6.3 简单的代码生成器 169
6.3.1 基本块与程序流图 169
6.3.2 寄存器分配原则 171
6.3.3 代码生成算法 171
6.4 本章小结 174
习题 174
参考书目 176