𝔖 Scriptorium
✦   LIBER   ✦

📁

编译原理

✍ Scribed by 王生原; 董渊; 张素琴; 吕映芝; 蒋维杜


Publisher
清华大学出版社
Year
2015
Tongue
Chinese
Leaves
411
Series
清华大学计算机系列教材
Edition
3
Category
Library

⬇  Acquire This Volume

No coin nor oath required. For personal study only.

✦ Synopsis


本书介绍程序设计语言编译程序构造的一般原理、基本设计方法和主要实现技术,主要内容包括文法、自动机和语言的基础知识,词法分析,语法分析,语法制导的语义计算,语义分析,中间代码生成,运行时存储组织,代码优化和目标代码生成。

除了基本设计原理外,书中还包含两个小型编译程序的设计实例,可选作课程设计的素材。一个是PL/0语言编译程序,其设计和实现框架贯穿于本书相关章节中;另一个是简单面向对象语言Decaf的编译程序。本书最后还介绍了业界广泛使用的开源编译器GCC及和它紧密相关的Binutils工具链,通过一系列程序实例说明这些工具的作用和基本用法。

本书可作为高等院校计算机科学与技术相关专业的本科生教材,也可作为相关教师、研究生或工程技术人员的参考书。

✦ Table of Contents


封面
书名
版权
前言
目录
第1章 引论
1.1 什么是编译程序
1.2 编译过程和编译程序的结构
1.2.1 编译过程概述
1.2.2 编译程序的结构
1.2.3 编译阶段的组合
1.3 解释程序和一些软件工具
1.3.1 解释程序
1.3.2 处理源程序的软件工具
1.4 PL/0语言编译系统
1.4.1 PL/0语言编译系统构成
1.4.2 PL/0语言
1.4.3 类P-code语言
1.4.4 PL/0编译程序
1.4.5 PL/0语言编译系统的驱动代码
练习
第2章 文法和语言
2.1 文法的直观概念
2.2 符号和符号串
2.3 文法和语言的形式定义
2.4 文法的类型
2.5 上下文无关文法及其语法树
2.6 句型的分析
2.6.1 自上而下的分析方法
2.6.2 自下而上的分析方法
2.6.3 句型分析的有关问题
2.7 有关文法实际应用的一些说明
2.7.1 有关文法的实用限制
2.7.2 上下文无关文法中的ε规则
练习
第3章 词法分析
3.1 词法分析程序的设计
3.1.1 词法分析程序和语法分析程序的接口方式
3.1.2 词法分析程序的输出
3.1.3 将词法分析工作分离的考虑
3.1.4 词法分析程序中如何识别单词
3.2 PL/0编译程序中词法分析程序的设计和实现
3.3 单词的形式化描述工具
3.3.1 正规文法
3.3.2 正规式
3.3.3 正规文法和正规式的等价性
3.4 有穷自动机
3.4.1 确定的有穷自动机(DFA)
3.4.2 不确定的有穷自动机(NFA)
3.4.3 NFA转换为等价的DFA
3.4.4 确定有穷自动机的化简
3.5 正规式和有穷自动机的等价性
3.6 正规文法和有穷自动机的等价性
3.7 词法分析程序的自动构造工具
3.7.1 lex描述文件中使用的正规表达式
3.7.2 lex描述文件的格式
3.7.3 lex的使用
3.7.4 与yacc的接口约定
练习
第4章 自顶向下语法分析方法
4.1 确定的自顶向下分析思想
4.2 LL(1)文法的判别
4.3 某些非LL(1)文法到LL(1)文法的等价变换
4.3.1 提取左公共因子
4.3.2 消除左递归
4.4 不确定的自顶向下分析思想
4.5 LL(1)分析的实现
4.5.1 递归下降LL(1)分析程序
4.5.2 表驱动LL(1)分析程序
4.6 LL(1)分析中的出错处理
4.6.1 应急恢复
4.6.2 短语层恢复
4.6.3 PL/0语法分析程序的错误处理
练习
第5章 自底向上优先分析
5.1 自底向上优先分析概述
5.2 简单优先分析法
5.2.1 优先关系定义
5.2.2 简单优先文法的定义
5.2.3 简单优先分析法的操作步骤
5.3 算符优先分析法
5.3.1 直观算符优先分析法
5.3.2 算符优先文法的定义
5.3.3 算符优先关系表的构造
5.3.4 算符优先分析算法
5.3.5 优先函数
5.3.6 算符优先分析法的局限性
练习
第6章 LR分析
6.1 LR分析概述
6.2 LR(0)分析
6.2.1 可归前缀和子前缀
6.2.2 识别活前缀的有限自动机
6.2.3 活前缀及可归前缀的一般计算方法
6.2.4 LR(0)项目集规范族的构造
6.3 SLR(1)分析
6.4 LR(1)分析
6.4.1 LR(1)项目集族的构造
6.4.2 LR(1)分析表的构造
6.5 LALR(1)分析
6.6 二义性文法在LR分析中的应用
练习
第7章 语法制导的语义计算
7.1 基于属性文法的语义计算
7.1.1 属性文法
7.1.2 遍历分析树进行语义计算
7.1.3 S-属性文法和L-属性文法
7.1.4 基于S-属性文法的语义计算
7.1.5 基于L-属性文法的语义计算
7.2 基于翻译模式的语义计算
7.2.1 翻译模式
7.2.2 基于S-翻译模式的语义计算
7.2.3 基于L-翻译模式的自顶向下语义计算
7.2.4 基于L-翻译模式的自底向上语义计算
7.3 分析和翻译程序的自动生成工具yacc
7.3.1 yacc描述文件
7.3.2 使用yacc的一个简单例子
练习
第8章 静态语义分析和中间代码生成
8.1 符号表
8.1.1 符号表的作用
8.1.2 符号的常见属性
8.1.3 符号表的实现
8.1.4 符号表体现作用域与可见性
8.1.5 实例:PL/0编译程序中符号表的设计与实现
8.2 静态语义分析
8.2.1 静态语义分析的主要任务
8.2.2 类型检查
8.3 中间代码生成
8.3.1 常见的中间表示形式
8.3.2 生成抽象语法树
8.3.3 生成三地址码
8.4 多遍的方法
练习
第9章 运行时存储组织
9.1 运行时存储组织概述
9.1.1 运行时存储组织的作用与任务
9.1.2 程序运行时存储空间的布局
9.1.3 存储分配策略
9.2 活动记录
9.2.1 过程活动记录
9.2.2 嵌套过程定义中非局部量的访问
9.2.3 嵌套程序块的非局部量访问
9.2.4 动态作用域规则和静态作用域规则
9.3 过程调用
9.4 PL/0编译程序的运行时存储组织
9.4.1 PL/0程序运行栈中的过程活动记录
9.4.2 实现过程调用和返回的类P-code指令
9.5 面向对象语言存储分配策略
9.5.1 类和对象的角色
9.5.2 面向对象程序运行时的特征
9.5.3 对象的存储组织
9.5.4 例程的动态绑定
9.5.5 其他话题
练习
第10章 代码优化和目标代码生成
10.1 基本块、流图和循环
10.1.1 基本块
10.1.2 流图
10.1.3 循环
10.2 数据流分析基础
10.2.1 数据流方程的概念
10.2.2 到达-定值数据流分析
10.2.3 活跃变量数据流分析
10.2.4 几种重要的变量使用数据流信息
10.3 代码优化技术
10.3.1 窥孔优化
10.3.2 局部优化
10.3.3 循环优化
10.3.4 全局优化
10.4 目标代码生成技术
10.4.1 目标代码生成的主要环节
10.4.2 一个简单的代码生成过程
10.4.3 高效使用寄存器
10.4.4 图着色寄存器分配
10.4.5 PL/0编译器的目标代码生成程序
练习
第11章 课程设计
11.1 基于PL/0编译器的课程设计
11.2 基于Decaf编译器的课程设计
11.2.1 Decaf编译器实验的总体结构
11.2.2 词法和语法分析(阶段一)
11.2.3 语义分析(阶段二)
11.2.4 中间代码生成(阶段三)
11.2.5 代码优化(阶段四)
11.2.6 目标代码生成(阶段五)
11.2.7 基于Decaf编译器的课程设计
11.3 软件包相关信息说明
第12章 编译器和相关工具实例——GCC/Binutils
12.1 开源编译器GCC
12.1.1 GCC介绍
12.1.2 GCC总体结构
12.1.3 GCC编译流程
12.1.4 GCC代码组织
12.1.5 小结
12.2 开源工具Binutils
12.2.1 目标文件
12.2.2 汇编器和链接器
12.2.3 其他工具
12.2.4 小结
12.3 编译器和工具使用实例
12.3.1 编译特定版本的编译器
12.3.2 查看目标文件
12.3.3 程序代码优化
12.3.4 小结
练习
附录A PL/0编译程序文本
参考文献
封底

✦ Subjects


编译原理 计算机


📜 SIMILAR VOLUMES


编译原理
✍ Alfred V.Aho; Jeffrey D.Ullman; Ravi Sethi 📂 Library 📅 2003 🏛 机械工业出版社 🌐 Chinese

<p>《编译原理》作者Alfred V.Aho、Ravi Sethi和Jeffrey D.Ullman是世界著名的计算机 科学家,他们在计算机科学理论、数据库等很多领域都做出了杰出贡献。《编译原理》 是编译领域无可替代的经典著作,被广大计算机专业人士誉为“龙书”。《编译原理》一 直被世界各地的著名高等院校和科研机构(如贝尔实验室、哥伦比亚大学、普 林斯顿大学和斯坦福大学等)广泛用作本科生和研究生编译原理与技术课程的 教材,《编译原理》对我国计算机教育界也具有重大影响。 书中深入讨论了编译器设计的重要主题,包括词法分析、语法分析、语法制 导分析、类型检查、运行环境、中间代码生成、代码生成、代码优

编译原理
✍ 刘铭; 徐兰芳; 骆婷 📂 Library 📅 2018 🏛 电子工业出版社 🌐 Chinese

本书是全国电子信息类优秀教材和华中科技大学优秀教学成果,根据高等学校“编译原理”课程教学基本要求编写。全书系统介绍了编译程序的一般构造原理、基本设计方法和主要实现技术。内容包括:文法和语言基本知识、词法分析程序的设计原理与构造方法、各种语法分析技术、语法制导翻译技术与中间代码生成、符号表的组织和管理、代码优化、运行时存储空间的组织与管理、目标代码生成、并行编译技术基本常识等。 本书系统性强、概念清晰,内容简明通俗,每章配有本章学习导读、本章小结、自测练习题和习题。提供二维码扫描便于获得扩展内容及相关资源。附录给出了自测练习题与习题参考答案及编译程序实验,本书还免费提供电子课件和实验源代码。

编译原理
✍ 张素琴 📂 Library 📅 2011 🏛 清华大学出版社 🌐 Chinese

书签已装载, 书签制作方法请找 [email protected] 完全免费 由张素琴和吕映芝等编著的《编译原理》介绍编译系统的一般构造原理、基本实现技术和一些自动构造工具。主要由语言基础知识、词法分析、语法分析、中间代码生成、代码优化、目标代码生成、符号表的构造和运行时存储空间的组织等部分组成。 《编译原理》中在介绍编译程序构造基本原理的同时引入“PL/O语言的编译程序”结构及文本,还引入LEX、YACC使用方法与实例。 本书是高等院校计算机科学与技术专业的本科生教材,也可作为教师、研究生或软件工程技术人员的参考书。

编译原理
✍ 鱼滨,王小兵,张琛 📂 Library 📅 2014 🏛 西安电子科技大学出版社 🌐 Chinese

本书是按照国家教育部制定的计算机专业编译原理课程教学大纲并兼顾目前授课时数压缩的现实情况编写而成的。本书系统地介绍了高级程序设计语言编译程序构造的一般原理和实现方法,主要内容包括编译程序的构成、词法分析、语法分析、语法制导翻译与中间代码生成、自动机的应用……

编译原理: 原理、技术与工具
✍ Alfred V. Aho; Monica S.Lam; Ravi Sethi; Jeffrey D. Ullman 📂 Library 📅 2008年12月 🏛 机械工业出版社 🌐 Chinese

<p>本书全面、深入地探讨了编译器设计方面的重要主题,包括词法分析、语法分析、语法制导定义和语法制导翻译、运行时刻环境、目标代码生成、代码优化技术、并行性检测以及过程间分析技术,并在相关章节中给出大量的实例。与上一版相比,本书进行了全面的修订,涵盖了编译器开发方面的最新进展。每章中都提供了大量的系统及参考文献。</p> <p>本书是编译原理课程方面的经典教材,内容丰富,适合作为高等院校计算机及相关专业本科生及研究生的编译原理课程的教材,也是广大技术人员的极佳参考读物。</p>

编译原理: 原理、技术与工具
✍ Alfred V. Aho; Monica S.Lam; Ravi Sethi; Jeffrey D. Ullman 📂 Library 📅 2008年12月 🏛 机械工业出版社 🌐 Chinese

<p>本书全面、深入地探讨了编译器设计方面的重要主题,包括词法分析、语法分析、语法制导定义和语法制导翻译、运行时刻环境、目标代码生成、代码优化技术、并行性检测以及过程间分析技术,并在相关章节中给出大量的实例。与上一版相比,本书进行了全面的修订,涵盖了编译器开发方面的最新进展。每章中都提供了大量的系统及参考文献。</p> <p>本书是编译原理课程方面的经典教材,内容丰富,适合作为高等院校计算机及相关专业本科生及研究生的编译原理课程的教材,也是广大技术人员的极佳参考读物。</p>