编译原理
课程设计报告
院系
专业
年级
学号
姓名
西南交通大学信息科学与技术学院2013年12月8日
f课程设计一手工设计C语言的词法分析器一、设计内容
手工设计c语言的词法分析器结合状态转换图的原理完成对c语言源程序的基本单词的分析及提取并设计相应的数据结构保存提取出来的单词。以及对c语言中的保留字的处理策略实现一个完整的C语言的词法分析器的编写。
二、设计目的
通过本实验的设计更具体的理解词法分析器的工作机制。同时更理解C语言的结构体系。从而更深刻的透析编译原理过程。
三、设计平台
1、硬件环境
1I
telRCoreTM10GHz
2内存4G
2、软件环境
1Wi
dow8Professor
2VisualC60开发软件
3、开发语言C语言。
四、需求分析
词法分析程序又称词法分析器或词法扫描器。可以单独为一个程序也可以作为整个编译程序的一个子程序当需要一个单词时就调用此法分析子程序返回一个单词这里作为子程序
词法分析器的结构
源程序输入缓冲区
预处理子程序
扫描缓冲区1扫描缓冲区2
词法分析子程序返回一个单词
调用数据
f状态转换图的程序实现
为便于程序实现假设每个单词间都有界符或运算符或空格隔开并引入下面的全局变量及子程序
1ch存放最新读进的源程序字符
2strToke
存放构成单词符号的字符串
3Buffer字符缓冲区
4structkeyType存放保留字的符号和种别
五、概要设计
保留字表的设计结构
基本功能状态转换
六、详细设计
1GETCHAR读一个字符到ch中
2GETBC读一个非空白字符到ch中
3CONCAT把CHAR中字符连接到strToke
之后
f4LETTER判断CHAR中字符是否为字母
5DIGIT判断ch中字符是否为数字
6RESERVE用strToke
中的字符串查找保留字表并返回保留字种别码若返
回零则非保留字
7RETRACT把CHAR中字符回送到缓冲区
源程序
i
clude