袁和金、黄建才、黄志强编著的《编译技术实践教程》分为两章。第1章给出了编译程序的结构、各阶段的实现原理和构造编译程序的方法。本部分是对编译技术的高度概括,从实践的角度出发,给出各个模块的实现思路,为第2章的实现过程提供理论和技术上的支持。经典的编译程序包括词法分析、语法分析、语义分析与中间代码生成、优化、目标代码生成五个阶段,而各个阶段又有其独特的理论体系和实现步骤。本章通过浓缩各个阶段的主要内容,使学生从更高的层次把握各阶段的核心,明确实现各个阶段的思路。
第2章给出了编译程序的实验内容和实现方法。本章在第1章的基础上,从实践的角度详细给出了各个阶段的实验要求和伪码实现,使学生从代码的角度理解编译程序的理论知识,并提高动手能力。本章首先介绍进行编译技术实验所需的准备知识,然后给出了词法分析、语法分析、语法制导翻译、代码生成各个阶段的实验要求、实现算法和上机安排,使学生明确实验的过程。为了突出编译技术的主要特点,简化设计过程,本章最后还给出了解释程序的实现过程。
袁和金、黄建才、黄志强编著的《编译技术实践教程》分为两章。第1章介绍编译程序的结构、各阶段的实现原理和构造编译程序的方法。第2章介绍编译程序的实验内容和实现方法。本教材给出的实验安排具有普遍性,各学校可根据自己的教学目标和学生水平酌情调节,以适应实际情况。
《编译技术实践教程》可作为大学编译技术课程设计的指导教材,也可作为编译技术或编译原理课程的配套教材。
第1章 课程的主要内容1
1.1 概述1
1.2 编译程序的组成1
1.2.1 词法分析2
1.2.2 语法分析——自上而下分析4
1.2.3 语法分析——自下而上分析9
1.2.4 语法制导翻译和中间代码产生14
1.2.5 代码优化16
1.2.6 目标代码生成21
1.2.7 表格处理程序24
1.2.8 错误处理程序26
1.3 编译程序的构造方法27
1.3.1 采用机器语言或汇编语言设计27
1.3.2 采用高级程序设计语言设计27
1.3.3 自动化构造方法27
1.3.4 构造编译程序的学习内容27
第2章 实验内容与考核方式28
2.1 实验要求28
2.1.1 前导课程与实验28
2.1.2 编程工具与运行环境28
2.1.3 选题与实验组织28
2.1.4 上机实验前的准备29
2.1.5 考核方式29
2.1.6 上机实验报告29
2.2 词法分析29
2.2.1 目的与要求29
2.2.2 题目与实现方法30
2.2.3 上机时间33
2.3 语法分析33
2.3.1 构造LL(1)分析表33
2.3.2 设计预测分析程序37
2.3.3 设计递归下降分析程序38
2.3.4 构造算符优先关系表40
2.3.5 设计算符优先分析程序43
2.3.6 构造LR(0)分析表45
2.3.7 设计LR分析程序48
2.4 语法制导翻译50
2.4.1 基于算符优先分析方法的语法制导翻译程序51
2.4.2 基于LR分析方法的语法制导翻译程序53
2.5 代码生成55
2.5.1 目的与要求55
2.5.2 题目与实现算法55
2.5.3 上机时间58
2.6 解释程序设计58
2.6.1 简单BASIC语言的语法和语义58
2.6.2 解释程序的实现方法60
2.6.3 输入源程序举例65
2.6.4 上机时间66
2.6.5 简单BASIC语言的扩展66
参考文献67