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

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


image


**
前言
**
本书与机械工业出版社于2009年出版的南京大学赵建华、郑滔和戴新宇所译的《编译原理》课本配合使用。该课本对应的英文版教材是美国哥伦比亚大学、斯坦福大学和Avaya实验室的Alfred V. Aho、Monica S. Lam、Ravi Sethi和Jeffrey D. Ullman所著的《Compilers: Principles, Techiques and Tools》,由于该书封面配有骑士和恐龙的图案,也被称为龙书。在下文中,如无特殊说明,课本均指该书(无论是中文翻译版还是英文原版)。
需要指出的是,虽然本书配合课本使用,但其内容已经包括所有相关的资料,因而它是内在完整的。这意味着,即使教学时使用其他编译原理相关的教材,本书仍能作为实践课程的教材,而不会出现所需资料不完整的情况。
设计思想
通常而言,编译原理实践课程较难设计,原因是其对应的理论教材以传授知识为主,离具体实践有较大的距离。而常规的实践课程大多会给出一门简易语言的语法,要求学生实现对应于该语言的编译器。由于缺乏规范化的指导,时常导致要么降低教学要求,允许学生较为随意地实现编译器;要么要求过高,致使学生们无从下手,从而对编译原理实践课程产生较大的抵触心理。针对这些问题,本书面向开设计算机学科的大专院校,提供一门接近实际C/C++的C––语言语法,给出了详细的实验步骤和指导过程,引导性地完成一个实际可用的编译器,并提供了充分的测试样例来验证编译器实现的正确性。
本书共分为四章,分别关注编译器设计的四个重要阶段—词法分析与语法分析、语义分析、中间代码生成以及目标代码生成。每章都给出具体的实验要求、实验指导以及测试样例等,它们共同覆盖了一个实用编译器的设计与实现的全过程。
本书的实验设计具有四个特点:一是接近实际,所采用的语言是C––,接近现实中常用的C/C++,这使得所设计的编译器非常实用,甚至在特定的领域可以直接或经过少量修改后使用;二是配有指导教程,引导性地完成整个编译器的设计与实现,不会出现面对实验要求无从下手或不得不求助第三方资料的情况;三是具备验证帮助,提供大量的测试样例来验证编译器实现的正确性,而无需自行特别设计测试用例;四是难度可调,提供多种实验执行方案,既可统一难度要求,也可区分必做内容和选做内容,更可实现分组方案,使得每个组队实现不同的功能组合,激发学生的思考和锻炼协作能力。

目录

第1章 词法分析与语法分析
1.1 实验内容
1.2 实验指导

相关文章
|
16天前
|
敏捷开发 算法 测试技术
【软件设计师—基础精讲笔记5】第五章 软件工程基础
【软件设计师—基础精讲笔记5】第五章 软件工程基础
41 2
|
16天前
|
自然语言处理 Java 编译器
【软件设计师—基础精讲笔记10】第十章 程序设计语言基础
【软件设计师—基础精讲笔记10】第十章 程序设计语言基础
23 1
|
1月前
|
存储 数据采集 人工智能
Python编程入门到实践,你的编程之旅从这里开始
Python编程入门到实践,你的编程之旅从这里开始
22 0
[软件工程导论(第六版)]第8章 维护(复习笔记)
[软件工程导论(第六版)]第8章 维护(复习笔记)
|
8月前
|
算法 测试技术 开发工具
[软件工程导论(第六版)]第1章 软件工程学概述(复习笔记)
[软件工程导论(第六版)]第1章 软件工程学概述(复习笔记)
|
8月前
|
搜索推荐
如何系统地学习IT技术:一篇指导初学者和有经验专业人士的博客
如何系统地学习IT技术:一篇指导初学者和有经验专业人士的博客
|
9月前
|
存储 数据可视化 Shell
一篇文章,带你了解CodeTour与入门指导
一篇文章,带你了解CodeTour与入门指导
145 0
|
11月前
|
编解码 测试技术 数据库连接
|
存储 人工智能 数据处理
1.1 计算机概述 专业理论是基础,计算机基础知识要点整理
1.1 计算机概述 专业理论是基础,计算机基础知识要点整理
133 0
|
测试技术 Linux 数据库
软件测试需要学习什么?自学和报班学习哪个更好?
如今各大企业对软件测试人才的需求都是非常大的,因此很多人也是看中了其中的可发展前景,纷纷表示想要学习软件测试转行做测试工程师,那么软件测试需要学习什么?怎么学?
211 0
软件测试需要学习什么?自学和报班学习哪个更好?