郭伟、李义杰等编著的《编译原理简明教程》从软件工程角度出发,不仅介绍传统程序设计语言的编译技术,同时还参照国内外的一些专著和论文介绍了面向对象语言的编译技术,其内容包括语言基础知识、词法分析、语法分析、中间代码生成、运行时的存储空间组织、代码优化、目标代码生成等。
本书适用范围较广,既可作为各大专院校计算机相关专业的辅导教材,也可作为从事系统软件和软件工具研究及开发工作人员的参考用书。
网站首页 软件下载 游戏下载 翻译软件 电子书下载 电影下载 电视剧下载 教程攻略
书名 | 编译原理简明教程(计算机科学与技术21世纪高等学校规划教材) |
分类 | |
作者 | 郭伟//李义杰 |
出版社 | 清华大学出版社 |
下载 | ![]() |
简介 | 编辑推荐 郭伟、李义杰等编著的《编译原理简明教程》从软件工程角度出发,不仅介绍传统程序设计语言的编译技术,同时还参照国内外的一些专著和论文介绍了面向对象语言的编译技术,其内容包括语言基础知识、词法分析、语法分析、中间代码生成、运行时的存储空间组织、代码优化、目标代码生成等。 本书适用范围较广,既可作为各大专院校计算机相关专业的辅导教材,也可作为从事系统软件和软件工具研究及开发工作人员的参考用书。 内容推荐 郭伟、李义杰等编著的《编译原理简明教程》从软件工程角度出发,不仅介绍传统程序设计语言的编译技术,同时还参照国内外的一些专著和论文介绍了面向对象语言的编译技术,其内容包括语言基础知识、词法分析、语法分析、中间代码生成、运行时的存储空间组织、代码优化、目标代码生成等。作为原理性的教材,本书旨在介绍基本的理论和方法,内容的安排和取舍以软件工程专业学生的学习与认知过程为基础,与专业培养的实际需求相匹配,内容力求简明实用,概念清晰、图文并茂,各章节之间循序渐进,并在各章之后附有典型习题及详细解析,供读者学习时练习和参考。 《编译原理简明教程》可作为高等院校计算机相关专业编译原理课程的教材,也可作为软件工程技术人员的参考书。 目录 第1章 引论 1 1.1 什么叫编译程序 1 1.2 编译过程概述 2 1.3 编译过程的结构 7 1.3.1 编译程序总框 7 1.3.2 表格与表格管理 7 1.3.3 出错处理 8 1.3.4 遍 8 1.3.5 编译前端与后端 9 1.4 解释程序和程序设计语言范型 9 1.4.1 解释程序 9 1.4.2 程序设计语言范型 11 1.5 编译程序的生成 12 习题1 14 第2章 编译基础 15 2.1 文法的直观概念 15 2.2 符号和符号串 16 2.3 文法和语言的形式定义 17 2.4 文法的类型 20 2.5 语法分析树与二义性 21 2.6 句型的分析 25 2.6.1 自上而下分析方法 25 2.6.2 自下而上分析方法 26 2.6.3 句型分析的有关问题 26 习题2 27 第3章 词法分析 29 3.1 单词的描述工具 29 3.1.1 正规文法 29 3.1.2 正规式 30 3.1.3 正规文法和正规式的等价性 31 3.2 有限自动机 32 3.2.1 确定的有限自动机(DFA) 33 3.2.2 非确定的有限自动机(NFA) 34 3.2.3 正规文法与有限自动机的等价性 37 3.2.4 正规式与有限自动机的等价性 39 3.2.5 确定有限自动机的化简 41 3.3 词法分析器的要求 43 3.3.1 词法分析器的功能和输出形式 43 3.3.2 词法分析工作分离的考虑 44 3.4 词法分析器的设计 45 3.4.1 输入、预处理 45 3.4.2 单词符号的识别—超前搜索 45 3.4.3 状态转换图 47 3.4.4 状态转换图的实现 49 3.5 词法分析器的自动产生 52 3.5.1 语言LEX的一般描述 52 3.5.2 超前搜索 54 3.5.3 LEX的实现 55 习题3 57 第4章 自上而下语法分析 59 4.1 语法分析器的功能 59 4.2 下推自动机模型 59 4.3 自上而下分析面临的问题 62 4.4 LL(1)分析法 64 4.4.1 左递归的消除 64 4.4.2 消除回溯、提取左因子 66 4.4.3 LL(1)分析条件 67 4.5 递归下降分析程序的构造 69 4.6 预测分析程序 71 4.6.1 预测分析程序工作过程 71 4.6.2 预测分析表的构造 72 4.7 LL(1)分析中的错误处理 74 习题4 76 第5章 自下而上语法分析 78 5.1 自下而上分析的基本问题 78 5.1.1 归约 78 5.1.2 规范归约简述 79 5.1.3 符号栈的使用与语法树的表示 81 5.2 算符优先分析 83 5.2.1 算符优先分析技术的改进 84 5.2.2 算符优先文法及优先表构造 85 5.2.3 算符优先分析算法 89 5.2.4 算符优先分析中的出错处理 91 5.3 LR分析法 93 5.3.1 LR分析器 93 5.3.2 LR(0)项目集族和LR(0)分析表的构造 98 5.3.3 SLR分析表的构造 105 5.3.4 规范LR分析表的构造 108 5.3.5 LALR分析表的构造 111 5.3.6 二义文法的应用 114 5.3.7 LR分析中的出错处理 117 5.4 语法分析器的自动产生工具YACC 120 习题5 124 第6章 语法制导翻译和中间代码生成 126 6.1 概述 126 6.2 属性文法 128 6.3 语法制导翻译 131 6.3.1 依赖图 133 6.3.2 S-属性文法的自下而上计算 135 6.3.3 L-属性文法和自上而下翻译 138 6.3.4 L-属性文法在自下而上分析中的实现 141 6.3.5 YACC使用语法制导翻译方法 143 6.4 语义分析 144 6.5 中间代码形式 144 6.5.1 逆波兰记号 144 6.5.2 三地址代码 145 6.5.3 树形表示形式 148 6.6 说明语句 148 6.6.1 过程中的说明语句 149 6.6.2 保留作用域信息 149 6.6.3 记录中的域名 152 6.7 赋值语句的翻译 153 6.7.1 简单算术表达式及赋值语句 153 6.7.2 数组元素的引用 154 6.7.3 记录中域的引用 159 6.8 布尔表达式的翻译方法 159 6.8.1 布尔表达式的翻译方法 160 6.8.2 控制语句中布尔表达式的翻译 161 6.9 控制结构的翻译 165 6.9.1 条件转移 165 6.9.2 开关语句 167 6.9.3 for循环语句 169 6.9.4 出口语句 171 6.9.5 goto语句 171 6.10 过程调用的处理 173 习题6 174 第7章 运行时的存储空间组织 177 7.1 数据空间的三种不同使用方法和管理方法 177 7.1.1 静态存储分配 178 7.1.2 动态存储分配 179 7.1.3 栈式动态存储分配 179 7.1.4 堆式动态存储分配 179 7.2 栈式存储分配的实现 179 7.2.1 简单的栈式存储分配的实现 180 7.2.2 嵌套过程语言的栈式实现 181 7.2.3 分程序结构的存储管理 185 7.3 参数传递 189 7.3.1 传值 189 7.3.2 传地址 191 7.3.3 过程参数 191 7.4 过程调用、过程进入和过程返回 192 习题7 193 第8章 优化 196 8.1 概述 196 8.2 局部优化 201 8.2.1 基本块及流图 201 8.2.2 基本块的DAG表示及其应用 203 8.3 循环优化 209 8.3.1 代码外提 209 8.3.2 强度削弱 213 8.3.3 删除归纳变量 214 习题8 216 第9章 目标代码生成 219 9.1 基本问题 219 9.2 目标机器模型 221 9.3 一个简单的代码生成器 222 9.3.1 待用信息 224 9.3.2 寄存器描述和地址描述 225 9.3.3 代码生成算法 225 9.4 寄存器分配 228 9.5 DAG的目标代码 231 9.6 窥孔优化 234 习题9 236 第10章 面向对象语言的编译 238 10.1 面向对象语言的基本概念 238 10.1.1 对象 238 10.1.2 对象类 239 10.1.3 继承性 239 10.1.4 信息封装 241 10.2 方法的编译 242 10.3 编译继承性的方案 243 10.3.1 简单继承性的编译方案 244 10.3.2 多继承性的编译方案 246 习题解析部分 251 习题1解析 251 习题2解析 253 习题3解析 256 习题4解析 269 习题5解析 276 习题6解析 288 习题7解析 296 习题8解析 305 习题9解析 315 参考文献 320 |
随便看 |
|
霍普软件下载网电子书栏目提供海量电子书在线免费阅读及下载。