天天看点

《编译原理实践与指导教程》——导读

《编译原理实践与指导教程》——导读

**

前言

本书与机械工业出版社于2009年出版的南京大学赵建华、郑滔和戴新宇所译的《编译原理》课本配合使用。该课本对应的英文版教材是美国哥伦比亚大学、斯坦福大学和avaya实验室的alfred v. aho、monica s. lam、ravi sethi和jeffrey d. ullman所著的《compilers: principles, techiques and tools》,由于该书封面配有骑士和恐龙的图案,也被称为龙书。在下文中,如无特殊说明,课本均指该书(无论是中文翻译版还是英文原版)。

需要指出的是,虽然本书配合课本使用,但其内容已经包括所有相关的资料,因而它是内在完整的。这意味着,即使教学时使用其他编译原理相关的教材,本书仍能作为实践课程的教材,而不会出现所需资料不完整的情况。

设计思想

通常而言,编译原理实践课程较难设计,原因是其对应的理论教材以传授知识为主,离具体实践有较大的距离。而常规的实践课程大多会给出一门简易语言的语法,要求学生实现对应于该语言的编译器。由于缺乏规范化的指导,时常导致要么降低教学要求,允许学生较为随意地实现编译器;要么要求过高,致使学生们无从下手,从而对编译原理实践课程产生较大的抵触心理。针对这些问题,本书面向开设计算机学科的大专院校,提供一门接近实际c/c++的c––语言语法,给出了详细的实验步骤和指导过程,引导性地完成一个实际可用的编译器,并提供了充分的测试样例来验证编译器实现的正确性。

本书共分为四章,分别关注编译器设计的四个重要阶段—词法分析与语法分析、语义分析、中间代码生成以及目标代码生成。每章都给出具体的实验要求、实验指导以及测试样例等,它们共同覆盖了一个实用编译器的设计与实现的全过程。

本书的实验设计具有四个特点:一是接近实际,所采用的语言是c––,接近现实中常用的c/c++,这使得所设计的编译器非常实用,甚至在特定的领域可以直接或经过少量修改后使用;二是配有指导教程,引导性地完成整个编译器的设计与实现,不会出现面对实验要求无从下手或不得不求助第三方资料的情况;三是具备验证帮助,提供大量的测试样例来验证编译器实现的正确性,而无需自行特别设计测试用例;四是难度可调,提供多种实验执行方案,既可统一难度要求,也可区分必做内容和选做内容,更可实现分组方案,使得每个组队实现不同的功能组合,激发学生的思考和锻炼协作能力。

<a href="https://yq.aliyun.com/articles/117892">第1章 词法分析与语法分析</a>

<a href="https://yq.aliyun.com/articles/117910">1.1 实验内容</a>

<a href="https://yq.aliyun.com/articles/117935">1.2 实验指导</a>