《编译原理》实验
《编译原理》是国内外各高等院校计算机科学技术类专业,特别是计算机软件专业的
一门重要专业课程。该课程系统地向学生介绍编译程序的结构、工作流程及编译程序各组
成部分的设计原理和实现技术。由于该课程理论性和实践性都比较强,内容较为抽象复杂
涉及到大量的软件设计算法,因此,一直是一门比较难学的课程。为了使学生更好地理解
和掌握编译技术的基本概念、基本原理和实现方法,实践环节非常重要,只有通过上机进
行程序设计,才能使学生对比较抽象的教学内容产生具体的感性认识,增强学生综合分析
问题、解决问题的能力,并对提高学生软件设计水平大有益处。
本实验内容可在《编译原理》课程教学的同时,安排学生进行相关的实验。实验平台
可选择在 MS-DOS 或 Windows 操作系统环境,使用 C/C++的任何版本作为开发工具。
学生在做完试验后,应认真撰写实验报告,内容应包括实验名称、实验目的、实验要求、
实验内容、测试或运行结果等。
实验一 词法分析
1.实验目的
对 C 语言的一个子集设计并实现一个简单的词法分析器,掌握利用状态转换图设计词
法分析器的基本方法。
2.实验要求
利用该词法分析器完成对源程序字符串的词法分析。输出形式是源程序的单词符号二
元式的代码,并保存到文件中。
3.实验内容
(1) 假设该语言中的单词符号及种别编码如下表所示。
单词符号及种别编码
单词符号 种别编码 单词符号 种别编码
main 1 [ 28
int 2 ] 29
char 3 { 30
if 4 } 31
else 5 , 32
for 6 : 33
while 7
;
34
标识符 ID
10
>
35
整型常数 NUM
20
<
36
= 21
>=
37
+ 22
<=
38
- 23
==
39
* 24
!=
40
/ 25 & 41
( 26 && 42