编译原理课程设计报告词法分析器..doc
文本预览下载声明
课程设计任务书
设 计
题 目 词法分析器的构造 成绩 主
要
内
容 对C语言的一个子集设计并实现一个简单的词法分析器,掌握利用状态转换图设计词法分析器的基本方法。
利用该词法分析器完成对源程序字符串的词法分析。输出形式是源程序的单词符号二元式的代码,并保存到文件中。 指
导
教
师
意
见 该生能按时完成课程设计任务书所规定的程序设计,综合运用所学知识独立分析和解决问题的能力 。程序设计方案 。论文论述 ,文理 ,格式 。程序运行结果 。程序验收时回答问题 。
签名:
目 录
引言...............................................................4
第一章 概述.....................................................5
1.1设计内容....................................................5
1.2设计要求...................................................5
第二章 设计的基本原理...........................................6
2.1............................................................6
2.2............................................................6
第三章 程序设计.................................................7
3.1总体方案设计...............................................7
3.2各模块设计.................................................8
第四章 程序测试.................................................9
4.1一般测试
4.2出错处理测试
第五章 结论.....................................................10
参考文献...........................................................10
附录 程序清单.................................................词法分析阶段是编译过程的第一个阶段,是编译的基础。这个阶段的任务是从左到右一个字符一个字符地读入源程序,即对构成源程序的字符流进行扫描然后根据构词规则识别单词(也称单词符号或符号)。词法分析程序实现这个任务。词法分析程序可以使用Lex等工具自动生成。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 ) 27 || 43 (2) 关键字main int char if else for while都是小写并都是保留字。
算符和界符 = + - * / < <= > >= == != || , : ; { } [ ] ( )
ID和NUM的正规定义式为:
ID→letter(letter | didit)*
NUM→digit digit*
letter→a | … | z | A | … | Z
digit→ 0 | … | 9
如果关键字、标识符和常数之间没有确定的算符或界符作间隔,则至少用一个空格作间隔。空格由空白、制表符和换行符组成。
第二章 设计原理
2.1 符号分类
程序语言的单词符号一般分为以下五种:
关键字
标识符
常数
运算符
界符
2.2.词法分析器的二元输出
(单词种别,单词符号的属性值)
单词种别用整数编码,关键字一字一种,标识符统归为一种,常数一种,各种符号各一种。
2.3 正规式和状态转换图
显示全部