实验2:词法分析
实验二:词法分析
1、实验目的:
设计、编制与调试一个词法分析程序,加深对词法分析原理的理解。
2、估计实验时间:
1.课余准备10小时;
2.上机二次4小时;
3.完成实验报告5小时。
3、实验要求:
3.1、待分析的C语言子集的词法
1、关键字
main if else int return void while
所有关键字都是小写。
2、专用符号
运算符包括:=、+、-、*、/、<、<=、>、>=、!=
分隔符包括:,、;、:,{、}、[、]、(、)
3、其它标记ID和NUM
通过以下正规式定义其它标记:
ID→letter(letter | digit)*
NUM→digit digit*
letter→a | … | z | A | … | Z
digit→0|…|9
4、空格由空白、制表符和换行符组成
空格一般用来分隔ID、NUM、专用符号和关键字,词法分析阶段通常被忽略。
3.2、种单词符号对应的种别码:
见教材186页
3.3、词法分析程序的功能:
输入:所给文法的源程序字符串。
输出:二元组(syn,token或sum) 构成的序列,其中:
.syn 为单词种别码
.token为存放的单词自身字符串。
.sum为整形常量。
3.4、为了能设计好程序,注意以下事情:
1.模块设计:将程序分成合理的多个模块(函数),每个模块做具体的同一事情。
2.写出(画出)设计方案:模块关系简图、流程图、全局变量、函数接口等。
3.编程时注意编程风格:空行的使用、注释的使用、缩进的使用等。
4、上交:
1.程序源代码(通过网络提交);
2.已经测试通过的测试数据3组;
5、实验报告:
(1)功能描述:该程序具有什么功能?
(2)程序结构描述:函数调用格式、参数含义、返回值描述、函数功能;函数
之间的调用关系图、程序总体执行流程图。
(3)实验过程记录:出错次数、出错严重程度、解决办法摘要。
(4)实验总结:你在编程过程中花时多少?多少时间在纸上设计?多少时间上
机输入和调试?多少时间在思考问题?遇到了哪些难题?你是怎么克服的?你对你的程序的评价?你的收获有哪些?