𝔖 Scriptorium
✦   LIBER   ✦

📁

编译器设计之路

✍ Scribed by 裘巍


Publisher
机械工业出版社
Year
2011
Tongue
Chinese
Leaves
461
Category
Library

⬇  Acquire This Volume

No coin nor oath required. For personal study only.

✦ Synopsis


《编译器设计之路》系统地介绍了一个实际的Pascal编译器Neo Pascal的设计与实现。结合Neo Pascal的源代码,详细讲述了LL(1)语法分析器、符号表系统、中间表示、类型系统、优化技术、运行时刻的存储管理、代码生成器等编译器设计的核心话题。各章都附有少量以实践应用为主的练习题,既可作为阅读思考题,也可作为课程设计选题。

与国内其他介绍编译技术的图书相比,《编译器设计之路》更关注的是编译器的实现细节,而不仅仅局限于理论阐述。《编译器设计之路》可供从事编译器设计相关工作的工程人员阅读,也可作为高等院校计算机专业的编译原理课程参考书。

✦ Table of Contents


编译器设计之路
书名页
版权页
出版说明
前言
目录
第1章 概述
11..11 编编译译技技术术概概述述
1.1.1 程序设计语言基础
1.1.2 程序设计语言的翻译机制
1.1.3 编译器的基本结构
1.2 Pascal语言基础
1.2.1 Pascal语言简介
1.2.2 Pascal程序基本组成
1.2.3 Pascal的声明部分
1.2.4 Pascal的类型
1.2.5 Pascal的运算符
1.2.6 Pascal的语句
1.3 开发环境与Delphi基础
1.3.1 开发环境与文件列表
1.3.2 Delphi基础
1.4 深入学习
1.5 实践与思考
1.6 大师风采——Niklaus Wirth
第2章 词法分析
2.1 词法分析概述
2.1.1 词法分析的任务
2.1.2 单词的分类
2.2 词法分析器的设计
2.2.1 识别单词
2.2.2 转换图
2.2.3 构造词法分析器
2.3 词法分析器的实现
2.3.1 词法定义
2.3.2 构造转换图与转换表
2.3.3 相关数据结构
2.3.4 源代码实现
2.4 深入学习
2.5 实践与思考
2.6 大师风采——Dennis M.Ritchie
第3章 语法分析
3.1 程序设计语言的语法描述
3.1.1 上下文无关文法
3.1.2 推导
3.1.3 语法树
3.1.4 归约简介
3.2 语法分析概述
3.2.1 语法分析的任务
3.2.2 自上而下的语法分析法
3.2.3 构造语法分析器
3.3 语法分析器的实现
3.3.1 文法定义
3.3.2 语法分析表
3.3.3 源代码实现
3.4 深入学习
3.5 实践与思考
3.6 大师风采——Edsger Wybe Dijkstra
第4章 符号表系统
4.1 语义分析概述
4.1.1 程序设计语言的语义
4.1.2 语义分析与IR生成的任务
4.1.3 语法制导翻译
4.2 符号表设计
4.2.1 符号表概述
4.2.2 符号表的逻辑结构
4.2.3 符号表的实例分析
4.3 声明部分的实现
4.3.1 相关数据结构
4.3.2 主程序首部声明
4.3.3 包含文件声明部分
4.3.4 标号声明部分
4.3.5 常量声明部分
4.3.6 类型声明部分
4.3.7 变量声明部分
4.3.8 过程、函数声明部分
4.4 深入学习
4.5 实践与思考
4.6 大师风采——John Backus
第5章 中间表示
5.1 IR概述
5.1.1 IR的作用
5.1.2 IR设计及其级别
5.1.3 设计IR的重要意义
5.2 IR生成
5.2.1 三地址代码概述
5.2.2 Neo Pascal三地址代码的实现
5.2.3 翻译机制概述
5.3 语句翻译概述
5.3.1 语句翻译基础
5.3.2 翻译辅助函数及其实现
5.4 if语句
5.4.1 if语句的翻译
5.4.2 源代码实现
5.5 while/repeat语句
5.5.1 while语句的翻译
5.5.2 源代码实现
5.5.3 repeat语句的翻译
5.6 for语句
5.6.1 for语句的翻译
5.6.2 源代码实现
5.7 case语句
5.7.1 case语句的翻译
5.7.2 源代码实现
5.8 其他语句
5.8.1 break、continue语句的翻译
5.8.2 goto语句的翻译
5.8.3 asm语句的翻译
5.9 深入学习
5.10 实践与思考
5.11 大师风采——Kenneth E.Iverson
第6章 表达式语义
6.1 表达式概述
6.2 类型系统基础
6.2.1 类型基础
6.2.2 类型系统
6.2.3 类型转换
6.3 类型系统的实现
6.3.1 类型系统的设计
6.3.2 IR的操作数
6.3.3 类型相容的实现
6.3.4 类型推断的实现
6.4 表达式翻译
6.4.1 表达式翻译基础
6.4.2 深入表达式翻译
6.4.3 表达式翻译的实现
6.5 操作数翻译
6.5.1 操作数的地址与形态
6.5.2 操作数翻译基础
6.5.3 简单变量操作数的翻译
6.5.4 记录字段操作数的翻译
6.5.5 数组翻译基础
6.5.6 数组元素操作数的翻译
6.5.7 指针运算的翻译
6.6 深入学习
6.7 实践与思考
6.8 大师风采——Alan Kay
第7章 优化技术
7.1 优化概述
7.1.1 什么是优化
7.1.2 优化级别
7.2 控制流分析
7.2.1 流图与基本块
7.2.2 流图的数据结构
7.2.3 流图的构造
7.2.4 优化的分类
7.3 数据流分析
7.3.1 数据流的相关概念
7.3.2 数据流分析的策略
7.3.3 活跃变量分析
7.3.4 ud链与du链
7.3.5 更多数据流问题
7.4 数据流分析的实现
7.4.1 定值点与引用点分析的基础
7.4.2 定值点、引用点分析的相关数据结构
7.4.3 定值点、引用点分析的实现
7.4.4 活跃变量分析的实现
7.4.5 ud链、du链分析的实现
7.5 常量传播与常量折叠
7.5.1 常量传播基础
7.5.2 常量传播的实现
7.6 复写传播
7.6.1 复写传播的基础
7.6.2 复写传播的实现
7.7 代数简化
7.7.1 代数简化基础
7.7.2 代数简化的实现
7.8 跳转优化
7.8.1 跳转优化基础
7.8.2 条件跳转优化的实现
7.8.3 连续跳转优化的实现
7.9 冗余代码删除
7.9.1 冗余代码删除基础
7.9.2 死代码删除的实现
7.9.3 不可到达代码删除的实现
7.10 深入学习
7.11 实践与思考
7.12 大师风采—Richard Stallman
第8章 运行时刻的存储管理
8.1 存储管理概述
8.1.1 存储区域
8.1.2 存储布局
8.1.3 存储分配基础
8.2 栈式存储分配
8.2.1 栈式存储分配基础
8.2.2 i386栈式存储分配
8.2.3 深入理解栈式存储分配
8.3 存储分配的实现
8.4 存储优化
8.4.1 存储优化基础
8.4.2 存储优化的实现
8.5 深入学习
8.6 实践与思考
8.7 大师风采—Bjarne Stroustrup
第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 ptr操作符
9.2.5 一个完整的汇编程序
9.3 构造代码生成器
9.3.1 自动代码生成器基础
9.3.2 指令模板
9.3.3 寄存器描述
9.3.4 寄存器分配
9.3.5 代码生成器的基本结构
9.4 深入学习
9.5 实践与思考
9.6 大师风采——Peter Naur
第10章 GCC内核与现代编译技术概述
10.1 编译技术的现状及发展
10.2 GCC内核分析
10.2.1 GCC的基本结构
10.2.2 GENERIC
10.2.3 GIMPLE
10.2.4 SSA
10.2.5 RTL概述
10.2.6 RTX
10.3 动态编译技术简介
10.3.1 动态编译技术基础
10.3.2 运行时特定化
10.3.3 动态二进制翻译
10.4 并行编译技术简介
10.4.1 并行编译技术基础
10.4.2 并行计算机及其编译系统
10.5 深入学习
10.6 大师风采——Alan Perlis
参考文献


📜 SIMILAR VOLUMES


编译器设计(第2版)
✍ Keith Cooper; Linda Torczon 📂 Library 📅 2012 🏛 人民邮电出版社 🌐 Chinese

<p>深入剖析现代编译器运用的算法和技术</p> <p>强调代码优化和代码生成</p> <p>体现编译原理教学的最新理念</p> <p>本书旨在介绍编译器构造法中的艺术和科学。书中深入分析现代编译器后端所用的算法和技术,重点讨论代码优化和代码生成,详细介绍了用几个编程语言编写的示例等。</p> <p>Keith D. Cooper 莱斯大学计算机科学系计算工程专业Doerr特聘教授,曾任该系系主任。Cooper博士的研究课题涵盖过程间数据流分析、标量指令优化、寄存器分配以及指令调度等方面。</p> <p>Linda Torczon 莱斯大学计算机科学系高级研究员。Torczon的研究

高级编译器设计与实现
✍ 马其尼克 赵克佳 沈志宇 📂 Library 📅 2005 🏛 机械工业出版社 🌐 Chinese

<p>本书涵盖了现代微处理器编译器的设计和实现方面的所有高级主题。</p> <p>本书首先介绍编译器的结构、符号表管理、中间代码结构、运行时支持等问题,探讨过程内的控制流分析、数据流分析、依赖关系分析和别名分析的各种方法,并介绍一系列的全局优化。接下来,讲述过程间的控制流分析、数据流分析和别名分析,以及程间优化和如何应用过程间信息来改善全局优化。然后,讨论有效利用层次存储系统的优化技术。最后,详细介绍4种商业化编译系统,以提供编译器结构、中间代码设计、优化策略和效果的专门例子。</p> <p>本书适合作为高等院校计算机专业研究生和高年级本科生的教材,也适合需要了解高级编译器设计和构造有关问

高级编译器设计与实现
✍ (美)马其尼克/赵克佳/沈志宇 📂 Library 📅 2005 🏛 机械工业出版社 🌐 Chinese

书签已装载, 书签制作方法请找 [email protected] 完全免费 本书涵盖了现代微处理器编译器的设计和实现方面的所有高级主题。 本书首先介绍编译器的结构、符号表管理、中间代码结构、运行时支持等问题,探讨过程内的控制流分析、数据流分析、依赖关系分析和别名分析的各种方法,并介绍一系列的全局优化。接下来,讲述过程间的控制流分析、数据流分析和别名分析,以及程间优化和如何应用过程间信息来改善全局优化。然后,讨论有效利用层次存储系统的优化技术。最后,详细介绍4种商业化编译系统,以提供编译器结构、中间代码设计、优化策略和效果的专门例子。 本书适合作为高等院校计算机专业研究生和

高级编译器设计与实现
✍ 马其尼克 📂 Library 📅 2005 🏛 机械工业出版社 🌐 Chinese

<p>本书涵盖了现代微处理器编译器的设计和实现方面的所有高级主题。</p> <p>本书首先介绍编译器的结构、符号表管理、中间代码结构、运行时支持等问题,探讨过程内的控制流分析、数据流分析、依赖关系分析和别名分析的各种方法,并介绍一系列的全局优化。接下来,讲述过程间的控制流分析、数据流分析和别名分析,以及程间优化和如何应用过程间信息来改善全局优化。然后,讨论有效利用层次存储系统的优化技术。最后,详细介绍4种商业化编译系统,以提供编译器结构、中间代码设计、优化策略和效果的专门例子。</p> <p>本书适合作为高等院校计算机专业研究生和高年级本科生的教材,也适合需要了解高级编译器设计和构造有关问

可变目标C编译器: 设计与实现
✍ Christopher W. Fraser; David R. Hanson 📂 Library 📅 2016 🏛 机械工业出版社 🌐 Chinese

<p>本书系统地介绍了可变目标ANSI C编译器lcc的设计方法和实现技术。lcc是一个实用的编译器,能够为不同的目标机器(如MIPS R3000、SPARC、Intel 386及其后续产品)生成代码。本书结合lcc的具体实现,详细讲述了存储管理、符号表、词法分析、语法分析、中间代码生成、优化、目标代码产生等编译程序的各个部分。</p> <p>本书特色鲜明,实用性强,适合作为高等院校计算机专业编译原理课程的教材或参考书,对从事编译相关工作的技术人员也有很好的参考价值。</p>