欢迎来到天天文库
浏览记录
ID:57677319
大小:1.08 MB
页数:16页
时间:2020-08-31
《词法分析器的设计.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、《编译原理》课程设计报告题目词法分析器的设计院系计算机科学与技术学院专业计算机科学与技术年级班级11计科1班学 号学生姓名指导教师李冰2014年6月19日目 录1课程设计目的、任务及要求11.1课程设计目的11.2课程设计任务及要求11.2.1课程设计任务11.2.2课程设计要求11.2.3课程设计环境12需求分析22.1系统设计的目标22.2系统功能需求分析22.3数据需求分析23系统设计33.1总体设计33.2总体流程图33.3字识别流程图43.4关键字识别流程图43.5数字的识别流程图54系统实现64.1各部分的功能介绍及分析64.2算法实现及
2、模拟65系统测试95.1结果的测试95.1.1运行结果95.1.2源文件及分析结果96课程设计小结106.1设计过程106.2困难与收获107课程设计源代码111课程设计目的、任务及要求1.1课程设计目的1、理解词法分析器的工作原理。2、使用程序设计语言实现一个简单的词法分析器。1.2课程设计任务及要求1.2.1课程设计任务完成下述文法所描述的单词符号的词法分析程序。<标识符>--><字母>
3、<标识符><字母>
4、<标识符><数字><无符号整数>--><数字>
5、<无符号整数><数字><分界符>-->+
6、-
7、*
8、/
9、;
10、(
11、)
12、{
13、}
14、<
15、<=
16、=
17、!=
18、
19、>=
20、>
21、==
22、<空格><字母>-->a
23、…
24、z
25、A
26、…
27、Z<数字>-->0
28、…
29、9<空格>-->’’说明:1.假定该语言对字母的大小写不敏感,由指定文件读入预分析的源程序,分析结果再写入指定文件。2.假定语言的关键字为"if","else","then","for","while","do","and","not","or"。3.程序的功能描述从左至右扫描源程序的字符串,按照词法规则(正则文法规则)识别出一个个正确的单词,并转换成该单词相应的二元式(种别码、属性值)交给语法分析使用。本程序规定输出用KeyWord代表关键字,Word代表普通标识符,D
30、igit代表阿拉伯数字,SingleWord代表单分界符,DoubleWord代表双分界符,ERROR代表无法识别的字符。1.2.2课程设计要求每个学生应完成:课题的需求分析,词法分析器的设计及开发,撰写课程设计报告等。1.2.3课程设计环境系统开发平台Windows7,系统开发工具MicrosoftVisualStudio2010,win32控制台应用程序,应用语言C++语言2需求分析2.1系统设计的目标能够完成下述文法所描述的单词符号的词法分析程序,并把从一个文件中读取,然后把结果输入并保存到另一个文件中,能完成的文法所描述的单词符号如下:1、<标
31、识符>--><字母>
32、<标识符><字母>
33、<标识符><数字>2、<无符号整数>--><数字>
34、<无符号整数><数字>3、<分界符>-->+
35、-
36、*
37、/
38、;
39、(
40、)
41、{
42、}
43、<
44、<=
45、=
46、!=
47、>=
48、>
49、=
50、<空格>4、<字母>-->a
51、…
52、z
53、A
54、…
55、Z<数字>-->0
56、…
57、9<空格>-->2.2系统功能需求分析1、词法分析需求分析主要是功能分析即词法分析,能对文件内容分析,从指定的源文件中读取内容并把分析结果输入到指定的文件。2、程序语言的单词符号一般分为五种:关键字、标示符、常数、运算符、界符,该软件能识别出假定关键字为"if","else","t
58、hen","for","while","do","and","not","or",这些程序语言。3、能从左至右扫描源程序的字符串,按照词法规则(正则文法规则)识别出一个个正确的单词,并转换成该单词相应的二元式(种别码、属性值)交给语法分析使用。2.3数据需求分析1、本程序规定输出用KeyWord代表关键字,Word代表普通标识符,Digit代表阿拉伯数字,SingleWord代表单分界符,DoubleWord代表双分界符,ERROR代表无法识别的字符。2、通过关键字"if","else","then","for","while","do","and",
59、"not","or"能够识别出标识符、无符号整数、分界符、字母并作出相应的分析。3、假定该语言对字母的大小写不敏感,由指定文件读入预分析的源程序,分析结果再写入指定文件,源程序尽量包含所需要的数据,关键字尽量都含有。3系统设计3.1总体设计该词法分析器有以下几个功能:关键字的判断、单分界符的判断、双分界符的判断、数字的判断、普通标识符的判断和无法识别字符的判断。除此之外,还要能从指定的源文件中读取程序并把结果输出到指定文件。3.2总体流程图图3—13.3字识别流程图判断输入的是否为字符,若为字符将其拼凑成以单词再往下进行判断,若不为字符则判断是否为数字
60、,函数实现:intIsLetter(charc){//判断是否为字母if(((c<='z')&
此文档下载收益归作者所有