- 机械工业出版社
- 9787893868474
- 2024-09
- 计算机类
内容简介
本书基于教育部101计划中编译原理核心课程建设的指导思想,以C/C++语言子集为基础,将编译的理论方法与技术实践相结合,系统性地介绍一款较为完备的编译器的实现技术和构建过程。本书内容涵盖从以源代码字符流作为原始输入、到最终以MIPS汇编代码作为输出的各个编译步骤,每个章节的理论介绍与实验指导互为支撑,章节之间的内容前后衔接,形成较为完备的编译器的整个构建过程。学生通过对本书的学习,可以熟悉一个完整编译器架构的理论方法,通过对其中实验部分的操作,可以进一步理解编译器各个组件之间的数据交互,并了解较大规模软件项目的规范开发流程。
目录
第一章 概述 1.1 设计思想 1.2 使用方式 1.3 时间安排 1.4 质量控制 第二章 词法分析和语法分析 2.1 词法分析和语法分析的理论方法 2.1.1 词法分析概要 2.1.2 正则表达式 2.1.3 有限状态自动机 2.1.4 状态最小化算法 2.1.5 语法分析概要 2.1.6 上下文无关文法 2.1.7 自顶向下的语法分析算法 2.1.8 自底向上的语法分析算法 2.2 词法分析和语法分析的实践技术 2.2.1 词法分析概述 2.2.2 GNU Flex介绍 2.2.3 Flex:编写源代码 2.2.4 Flex:书写正则表达式 2.2.5 Flex:高级特性 2.2.6 词法分析实践的额外提示 2.2.7 语法分析概述 2.2.8 GNU Bison介绍 2.2.9 Bison:编写源代码 2.2.10 Bison:属性值的类型 2.2.11 Bison:语法单元的位置 2.2.12 Bison:二义性与冲突处理 2.2.13 Bison:源代码的调试 2.2.14 Bison:错误恢复 2.2.15 语法分析实践的额外提示 2.3 词法分析和语法分析的实践内容 2.3.1 实践要求 2.3.2 输入格式 2.3.3 输出格式 2.3.4 验证环境 2.3.5 提交要求 2.3.6 样例(必做部分) 2.3.7 样例(选做部分) 2.4 本章小结 第三章 语义分析 3.1 语义分析的理论方法 3.1.1 语义分析的原理 3.1.2 上下文相关的分析 3.1.3 语法制导的翻译 3.2 语义分析的实践技术 3.2.1 属性文法 3.2.2 符号表 3.2.3 支持多层作用域的符号表 3.2.4 类型表示 3.2.5 语义分析实践的额外提示 3.3 语义分析的实践内容 3.3.1 实践要求 3.3.2 输入格式 3.3.3 输出格式 3.3.4 验证环境 3.3.5 提交要求 3.3.6 样例(必做部分) 3.3.7 样例(选做部分) 3.4 本章小结 第四章 中间代码生成 4.1 中间代码生成的理论方法 4.1.1 中间代码的设计 4.1.2 中间代码的表示 4.1.3 中间代码的内存模型 4.1.4 中间代码翻译的技术原理 4.2 中间代码生成的实践技术 4.2.1 中间代码的分类 4.2.2 中间代码的表示(线形) 4.2.3 中间代码的表示(树形) 4.2.4 运行时环境初探 4.2.5 翻译模式(基本表达式) 4.2.6 翻译模式(语句) 4.2.7 翻译模式(函数调用) 4.2.8 翻译模式(数组与结构体) 4.2.9 中间代码生成实践的额外提示 4.3 中间代码生成的实践内容 4.3.1 实践要求 4.3.2 输入格式 4.3.3 输出格式 4.3.4 验证环境 4.3.5 提交要求 4.3.6 样例(必做部分) 4.3.7 样例(选做部分) 4.4 本章小结 第五章 目标代码生成 5.1 目标代码生成的理论方法 5.1.1 目标代码生成的设计 5.1.2 内存模型的设计和管理 5.1.3 寄存器分配算法 5.2 目标代码生成的实践技术 5.2.1 QtSPIM简易教程 5.2.2 MIPS32汇编代码的书写 5.2.3 指令选择 5.2.4 素寄存器分配算法 5.2.5 局部寄存器分配算法 5.2.6 图染色算法 5.2.7 活跃变量分析 5.2.8 MIPS寄存器的使用 5.2.9 栈管理 5.2.10 目标代码生成实践的额外提示 5.3 目标代码生成的实践内容 5.3.1 实践要求 5.3.2 输入格式 5.3.3 输出格式 5.3.4 验证环境 5.3.5 提交要求 5.3.6 样例(必做部分) 5.3.7 样例(选做部分) 5.4 本章小结 第六章 中间代码优化 6.1 中间代码优化的理论方法 6.1.1 抽象解释 6.1.2 格与偏序集 6.1.3 数据流分析技术 6.1.4 数据流分析算法 6.1.5 过程间分析 6.2 中间代码优化的实践技术 6.2.1 中间代码优化概述 6.2.2 基本块和控制流图 6.2.3 局部优化 6.2.4 数据流分析概述 6.2.5 到达定值分析 6.2.6 可用表达式分析 6.2.7 活跃变量分析 6.2.8 全局优化 6.2.9 过程间优化 6.3 中间代码优化的实践内容 6.3.1 实践要求 6.3.2 输入格式 6.3.3 输出格式 6.3.4 验证环境 6.3.5 提交要求 6.3.6 样例(必做部分) 6.3.7 样例(选择部分) 6.4 本章小结 附录A:所用C--语言的文法 附录B:中间代码执行虚拟机小程序的使用说明 附录C:实践资源的下载和安装说明

















