本书是在参考国内外优秀编译原理教材的基础上编写而成的。全书共10章,全面介绍了编译程序设计的基本原理和方法,详细介绍了编译过程中的词法分析、语法分析、语义处理及中间代码生成、中间代码优化、目标代码生成及寄存器分配、运行时刻的存储分配等的原理和实现技术。
本书语义描述直观、严谨,翻译过程表述清晰、易懂,适于用作高等学校计算机专业编译原理课的教材,也可以用作软件工程师的参考书。
网站首页 软件下载 游戏下载 翻译软件 电子书下载 电影下载 电视剧下载 教程攻略
书名 | 编译原理(高等院校计算机专业及专业基础课系列教材) |
分类 | 教育考试-大中专教材-成人教育 |
作者 | 孙家骕 |
出版社 | 北京大学出版社 |
下载 | ![]() |
简介 | 编辑推荐 本书是在参考国内外优秀编译原理教材的基础上编写而成的。全书共10章,全面介绍了编译程序设计的基本原理和方法,详细介绍了编译过程中的词法分析、语法分析、语义处理及中间代码生成、中间代码优化、目标代码生成及寄存器分配、运行时刻的存储分配等的原理和实现技术。 本书语义描述直观、严谨,翻译过程表述清晰、易懂,适于用作高等学校计算机专业编译原理课的教材,也可以用作软件工程师的参考书。 内容推荐 本书较全面地介绍了编译程序设计的基本原理和方法,详细地介绍了编译过程中的词法分析、语法分析、语义处理及中间代码生成、中间代码优化、目标代码生成及寄存器分配、运行时刻的存储分配等的原理和实现技术。本书采用属性文法的形式辅助描述程序语言的语义,用语法制导翻译的策略实现对程序语言的翻译,这样做使得语义描述更为直观、严谨,翻译过程表述更为清晰、易懂。本书适于用作高等学校计算机专业编译原理课的教材,也可以用作软件工程师的参考书。 目录 第1章 预备知识 1.1 相关定义 1.1.1 字母表 1.1.2 符号串 1.2 高级语言的形式定义 1.3 分析树 1.3.1 分析树的定义 1.3.2 分析树与短语 1.3.3 分析树与推导 1.4 形式语言分类简介 习题一 第2章 编译程序概述 2.1 编译程序的组成 2.2 编译程序的构造途径 2.3 解释程序 习题二 第3章 词法分析与有限自动机 3.1 词法分析器的作用 3.2 词法分析器的构造方法 3.2.1 手工构造词法分析器 3.3 正则表达式和正则集合 3.3.1 正则表达式和正则集合的定义 3.3.2 用正则表达式描述单词 3.4 有限自动机 3.5 正则表达式与有限自动机的等价性 3.6 正则文法与有限自动机的等价性 3.7 确定的有限自动机的最小化 3.8 LEX简介 习题三 第4章 语法分析 4.1 上下文无关文法的等价变换 4.1.1 消除文法的二义性 4.1.2 删除文法中的无用符号及无用产生式 4.1.3 删除文法中的E一产生式 4.1.4 删除文法中的单一产生式 4.1.5 消除文法中的左递归 4.2 自顶向下的语法分析 4.2.1 LL(1)文法 4.2.2 预测分析法 4.3 自底向上分析 4.3.1 算符优先分析法 4.3,2 LR分析 4.4 语法错误处理简介 4.5 YACC简介 习题四 第5章 属性文法和语法制导翻译 5.1 属性文法的定义 5.2 属性求值 5.3 S属性文法 5.4 L属性文法 5.5 翻译模式 5.6 自顶向下翻译 5.6.1 消除翻译模式中的左递归 5.6.2 预测翻译程序的设计 5.7 自底向上翻译 5.7.1 消除嵌入在产生式中间的动作 5.7.2 如何确定继承属性在分析栈中的位置 5.7.3 自底向上翻译程序代码的设计 习题五 第6章 语义检查 6.1 语义检查的内容 6.2 符号表 6.2.1 符号表在语义检查中的作用 6.2.2 符号表的实现 6.2.3 符号表的分类及表项内容 6.2.4 子程序嵌套情况下符号表的组织 6.3 类型检查 6.3.1 类型等价和类型相容 6.3.2 类型表达式 6.3.3 几个与类型相关的翻译模式 6.3.4类型表达式的等价 6.4 类型转换 6.4.1 类型转换的起因 6.4.2 类型转换的时机 习题六 第7章 运行时的存储分配 7.1 存储布局 7.1.1 静态存储区 7.1.2 动态存储区 7.1.3 活动记录 7.2 内存分配策略 7.2.1 静态存储分配 7.2.2 动态栈式存储分配 7.2.3 动态堆式存储分配 7.3 对变量等数据的访问 7.3.1 对全局变量和静态变量的访问 7.3.2 对动态变量的访问 7.3.3 对不允许子程序嵌套定义的局部变量的访问 7.3.4 对嵌套子程序中外层变量的访问 7.4 参数传递 7.4.1 传值调用(caIl by value) 7.4.2 引用调用(call by reference) 7.4.3 复制一恢复调用 7.4.4 传名调用(call-by_name) 习题七 第8章 中间代码生成 8.1 中间代码的形式 8.2 说明的处理 8.3 赋值语句的翻译 8.3.1 关于简单类型变量的赋值语句的翻译 8.3.2 含有数组元素引用和记录变量域引用的赋值语句的翻译 8.4 布尔表达式的翻译 8.4.1 布尔表达式的求值翻译 8.4.2 作为控制条件的布尔表达式的翻译 8.5 控制语句的翻译 8.5.1 if语句和while语句的翻译 8.5.2 Switch语句的翻译 8.5.3 repeat语句的翻译 8.5.4 转移语句和调用语句的翻译 8.6 自顶向下的分析翻译 习题八 第9章 代码优化 9.1 引言 9.1.1 代码优化准则 9.1.2 进行代码优化的阶段 9.1.3 进行代码优化的范围 9.1.4 优化程序的一般结构 9.1.5 基本块和流图 9.2 进行代码优化的几种主要方法 9.3 流图中的循环及其查找 9.3.1 控制结点 9.3.2 回边 9.3.3 循环的查找 9.3.4 可归约流图 9.3.5 流图的结点深度优先排序及其算法 9.4 数据流分析 9.4.1 到达一定值数据流分析 9.4.2 可用表达式数据流分析 9.4.3 活跃变量分析 9.4.4 定值一引用链(du链) 9.5 循环优化 9.5.1 代码外提 9.6 删除全局公共子表达式 9.7 复写传播 习题九 第10章 目标代码生成 10.1 目标计算机模型 10.2 目标代码生成方法 10.2.1 一个简单的寄存器分配方法 10.2.2 一个简单的代码生成算法 10.3 图着色法的寄存器分配 10.3.1 图着色法 10.3.2 图着色法分配寄存器算法 10.4 DAG(有向无环图)及其构造算法 10.4.1 DAG的表示方法 10.4.2 DAG的构造算法 10.4.3 由DAG生成目标代码 10.5 依赖于目标计算机的优化 习题十 参考文献 |
随便看 |
|
霍普软件下载网电子书栏目提供海量电子书在线免费阅读及下载。