编译原理词法分析报告器地构造

编译原理词法分析报告器地构造

ID:39177760

大小:267.75 KB

页数:12页

时间:2019-06-26

编译原理词法分析报告器地构造_第1页
编译原理词法分析报告器地构造_第2页
编译原理词法分析报告器地构造_第3页
编译原理词法分析报告器地构造_第4页
编译原理词法分析报告器地构造_第5页
资源描述:

《编译原理词法分析报告器地构造》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、标准文档实验报告(2014/2015学年第一学期)课程名称编译原理实验名称词法分析器的构造实验时间2015年4月10日指导单位南京邮电大学指导教师蒋凌云学生姓名孙雪禄班级学号B12041213学院(系)计算机学院、软件学院专业软件工程(服务外包)实用文案标准文档实用文案标准文档实验报告实验名称词法分析器的构造指导教师蒋凌云实验类型上机实验实验学时4实验时间2015.4.10一、实验目的和要求设计、编制、调试一个词法分析程序,对单词进行识别和编码,加深对词法分析原理的理解。二、实验环境(实验设备)MicrosoftVisualStdio2010实用文案标准文档实用文案标准文档一、实验原

2、理及内容1、实验内容:设计并实现一个词法分析器,实现对指定位置的类C语言源程序文本文件的读取,并能够对该源程序中的所有单词进行分类,指出其所属类型,实现简单的词法分析操作。例如下面为一段C语言源程序:main(){int a,b;a=10; b=a+20;}要求输出如下(可以自行分类,分类原则请在报告中说明)(1,’main’)(5,’(’)(5,’)’)(5,’{’)(1,’int’)(2,’a’)(5,’,’)(2,’b’)(5,’;’)(2,’a’)(4,’=’)实用文案标准文档(3,’10’)(5,’;’)(2,’b’)(4,’=’)(2,’a’)(4,’+’)(3,’20’

3、)(5,’;’)(5,’}’)2、实验要求:(1)、允许用户自己输入源程序并保存为文件(2)、系统能够输出经过预处理后的源程序(去掉注释、换行、空格等)(3)、能够将该源程序中所有的单词根据其所属类型(整数、保留字、运算符、标识符等。定义的类C语言中的标识符只能以字母或下划线开头)进行归类显示,例如:识别保留字:if、int、for、while、do、return、break、continue等,其他的都识别为标识符;常数为无符号整形数;运算符包括:+、-、*、/、=、>、<、>=、<=、!=等;分隔符包括:,、;、{、}、(、)等。(4)、实现文件的读取操作,而不是将文本以字符串形

4、式预存于程序中。文本内容为待分析的类C语言程序。3、实验过程描述(1)首先讲和书上一样分成5类分类号分类内容1保留字实用文案标准文档2标识符3整数4运算符(+,-,*,/,>,<,=等)5分隔符(,,;,{,},(,))(2)、接着写出用到的简单文法并转换成状态转换图<标识符>::=字母

5、字母<标识符>

6、<标识符>数字0⑤⑥31②④字母非数字或字母字母或数字数字数字非数字+-*/=><,;(){}<整数>::=数字

7、数字<整数><运算符>::=+

8、-

9、*

10、<

11、>

12、=<分隔符>::=,

13、;

14、(

15、)

16、{

17、}保留字是一种特殊的标识符,不独立写出其文法0⑤⑥31②④字母非数字或字母字母或数字

18、数字数字非数字+-*/=><,;(){}状态转换图如下:实用文案标准文档(3)按照书上的步骤写程序因为程序要求将用户的输入保存到文件中所以这里要用到文件存贮操作,fopen(FILE*文件名,打开方式)。一共有三个函数分别是boolLETTER(charA)//判断字符是否是字母{if(A>='a'&&A<='z')returntrue;elseif(A>='A'&&A<='Z')returntrue;elsereturnfalse;}boolDIGIT(charA)//判断字符是否是数字{if(A>='0'&&A<='9')returntrue;elsereturnfalse;}b

19、oolREAERVE(char*a)//判断标识符是否为保留字{if(strcmp(a,"if")==0){cout<<"(1,'"<

20、a,"do")==0){cout<<"(1,'"<

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

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

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