编译原理词法分析器实践报告.doc

编译原理词法分析器实践报告.doc

ID:56761251

大小:374.00 KB

页数:19页

时间:2020-07-07

编译原理词法分析器实践报告.doc_第1页
编译原理词法分析器实践报告.doc_第2页
编译原理词法分析器实践报告.doc_第3页
编译原理词法分析器实践报告.doc_第4页
编译原理词法分析器实践报告.doc_第5页
资源描述:

《编译原理词法分析器实践报告.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、哈尔滨理工大学软件学院《编译原理》项目实践报告题目:词法分析器班级:软件15-4班专业:软件工程姓名:吕小胜:学号:1514010414:指导教师:张春祥日期:2017年4月19日目录一、需求分析2二、系统设计2(一)系统中的数据定义2(二)系统的概要设计3(三)系统的详细设计3(四)系统的核心算法4三、系统编码及运行5(一)系统开发涉及的软件5(二)系统运行界面及结果5四、系统测试5五、总结5附录(源代码)5一、需求分析词法分析(LexicalAnalysis)是编译的第一阶段。词法分析器的主要任务是读入源程序的输入字符、将他

2、们组成词素,生成并输出一个词法单元序列,每个词法单元对应一个词素。这个词法单元序列被输出到语法分析器进行语法分析。二、系统设计(一)系统中的数据定义本词法分析器演示的是C语言的一个子集,故字符集如下:(1)标识符:以字母开头的字母数字串。(2)常熟(3)保留字:auto,break,case,char,const,continue,default,do,double,else,enum,extern,float,for,goto,if,int,long,register,return,short,signed,sizeof,st

3、atic,struct,switch,typedef,union,unsigned,void,volatile,while(4)运算符:+、-、*、/、%、>、<、=、!=、==、<=、>=、++、--、!、&、&&、

4、

5、;(5)界符:[]{}():‘’“”#,单词分类号标识符1常数2保留字3界符4运算符5单词分类表(二)系统的概要设计(三)系统的详细设计1、TestLexer()2、voidwriteFile(Stringstr1,StringBuildernumber)3、booleanisDigit(charch)4、bo

6、oleanisLetter(charch)2、booleanisKeyWord(StringBuilderstr)3、booleanisOperator(charch)4、booleanisSeparators(charch)(四)系统的核心算法TestLexer()程序入口StringBufferbuffer;文件读入缓冲区Char[]cs;字符变量,存放源程序字符StringBuildersb;字符串,存放切割出的字词booleanisLetter(charch)判断ch是否为字母booleanisDigit(charch)

7、判断是否为数字booleanisKeyWord(String)判断是否为关键字booleanisOperator(char)判断是否为运算符booleanisSeparators(char)判断是否为分隔符voidwriteFile(Stringstr1,StringBuildernumber)按照二元式规则写入文件三、系统编码及运行(一)系统开发涉及的软件WPS文字、eclipse、(二)系统运行界面及结果四、系统测试五、总结通过此次实验,让我了解到如何设计、编制并调试词法分析程序,熟悉了构造词法分析程序的手工方式的相关原理,

8、加深了对编译原理词法分析的理解,本次使用java语言直接编写此法分析程序,也让我重新熟悉了java语言的相关内容,加深了对java语言的用途的理解。本程序的数据输入采取直接从文件中读取,而不是由键盘输入,因此在测试过程中,输入得到大大简化,但是本程序的关键字表只初始化了一部分关键字,还可继续扩充(只需扩大数组,向其中补充要添加的关键字),而且程序的测试数据存在不足,程序可能存在未发现的漏洞,以上两点有待改善。附录importjava.io.File;importjava.io.FileReader;importjava.io.F

9、ileWriter;importjava.io.IOException;importjava.io.InputStream;publicclassTestLexer{//保留字集staticString[]keyWords={"auto","break","case","char","const","continue","default","do","double","else","enum","extern","float","for","goto","if","int","long","register","return",

10、"short","signed","sizeof","static","struct","switch","typedef","union","unsigned","void","volatile","while"};//运算符集staticchar[]oper

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。