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