数学与软件科学学院 实验报告
学期: 2015 至 2016第 2 学期 2016 年 3 月 1 日
2013 5
课程名称: 编译原理 专业: 信息与计算科学 级 班
实验编号: 1 实验名称: 词法分析器 指导教师: 王开端
学生姓名: 李丹 学号: 2013060510 实验成绩:
实验一 词法分析器
实验目的:
通过分析与设计,编写出一个此法分析程序,并能实现相应的功能。
实验内容:
设计一个词法分析器,使其能对输入的字符串进行分析,并识别是哪一类单
词符号,并按照输出形式输出。
实验步骤:
1 什么是词法分析
词法分析是编译的第一个阶段,其任务是:从左至右逐个字符地对源程序进
行扫描,产生一个个单词符号,把字符串形式的源程序改造成为单词符号串形式
的中间程序。执行词法分析的程序称为词法分析程序,也称为词法分析器或扫描
器。词法分析器的功能是输入源程序,输出单词符号。
2 单词符号分类
C
单词符号是程序语言的基本语法单位,具有具体的语法意义。 语言的单词
符号通常可以分为以下5类:
if else do while case switch
保留字: 、 、 、 、 、
标识符:letter (letter|digit)*
digit digit *
整型常数: ( )
运算符:+、-、*、/、>、> 、
{ } :
界符:,、;、 (、)、 、 、
3 词法分析程序输出单词符号的形式
词法分析程序的输入是源程序字符串,输出是与源程序等价的单词符号序
列,并且所输出的单词符号通常表示成如下的二元式:
(单词种别,单词自身的值)
表1 C语言子集的单词符号及种别码表
单词符号 种别码 单词符号 种别码
if 1 > 14
else 2 < 15
do 3 < 16
while 4 17
case 5 18
switch 6 , 19
digit(digit)* 7 ; 20
letter(letter|digit)* 8 : 21
+ 9 (