首页 2023年词法分析的实验报告

2023年词法分析的实验报告

举报
开通vip

2023年词法分析的实验报告《词法分析》实验报告coutV<"第"<

2023年词法分析的实验报告
《词法 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 》实验 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 coutV<"第"<;<读入1))if(a==b)thena=a+l;elseb=b+l;repeata=a+b;untila>b;writea;writeb;end;hgj一、,里母休更2[「泛第好丁:〈木识符非案4行:<关寺号,;〉:《丢键字1.else〉:《标识符,b)〈特殊符号,=〉<标识符/〉<特殊符号,+)〈数字,1〉〈特殊符号,;〉第7虹:(天键字5jepeat)第8彳「〈树只食,a)〈特殊符号」〉<标识符.a〉<特殊符号,+)〈标识符/〉<特殊符号,;〉第9仃:4天键于7,until)第10行:〈标识符,a><特殊符号,”(标识符,b〉<特殊符号人〉第1式工:〈若键至<一'一第12行:〈关键字〈标识符,b)第13彳亍:〈关键字2,end〉帚殊存号,;〉read>read>if)三t非专then>〈特殊符号,=)〈特殊符号,=)〈相识符,a〉〈特殊符号,=)〈标识符,a)〈特殊符号,+〉〈数字,1〉<,a)(芸,;>,;>第14行:情按任意键继续...4实验体会本次实验是《编译技术》的第一次实验,按理说也应当是最简朴的一次实验验,但是在具体的实现过程中还是碰到了这样或那样的问题,比如对原输入串进行分析的预解决是在注释的嵌套判断上出现了问题,调试了几次才发现是出现注释时计数值本来应当减2结果减了1。类似的错误尚有,但好在最后都解决了。除了提高了自己的动手能力外本次实验最大的收获应当是对词法分析器的运营机制有了更进一步的理解了,再画状态转换的过程中也激发了我的一些关于那些复杂的语言(如C++)的词法分析器是如何 关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf 写的联想,希望在此后的学习实践中能有更进一步的学习。最后感谢老师的悉心指导,谢谢老师!目录目录。错误!未定义书签。实验目的错误!未定义书签。实验内容错误!未定义书签。2.1TINY计算机语言描述。错误!未定义书签。2实验 规定 关于下班后关闭电源的规定党章中关于入党时间的规定公务员考核规定下载规定办法文件下载宁波关于闷顶的规定 ,错误!未定义书签。此法分析器的程序实现。错误!未定义书签。错误!未定义书签。1状态转换图3.2程序源码。错误!未定义书签。3.3实验运营效果截图。错误!未定义书签。实验体会错误!未定义书签。1实验目的1、学会针对DFA转换图实现相应的高级语言源程序。2、深刻领略状态转换图的含义,逐步理解有限自动机。3、掌握手工生成词法分析器的方法,了解词法分析器的内部工作原理。2实验内容TINY计算机语言描述TINY计算机语言的编译程序的词法分析部分实现。从左到右扫描每行该语言源程序的符号,拼成单词,换成统一的内部表达(token)送给语法分析程序。为了简化程序的编写,有具体的规定如下:1、数仅仅是整数。2、空白符仅仅是空格、回车符、制表符。3、代码是自由格式。4、注释应放在花括号之内,并且不允许嵌套TINY语言的单词保存字特殊符号其他if+标记符(一个或更多的字母)then一else*end/repeat=数(一个或更多的数字)unti1<read(2实验规定write}9•规定实现编译器的以下功能1、按规则拼单词,并转换成二元式形式2、删除注释行3、删除空白符(空格、回车符、制表符)4、列表打印源程序,按照源程序的行打印,在每行的前面加上行号,并且打印出每行包含的记号的二元形式5、发现并定位错误•词法分析进行具体的规定1、记号的二元式形式中种类采用枚举方法定义;其中保存字和特殊字符是每个都一个种类,标示符自己是一类,数字是一类;单词的属性就是表达的字符串值。2、词法分析的具体功能实现是一个函数GetToken。,每次调用都对剩余的字符串分析得到一个单词或记号辨认其种类,收集该记号的符号串属性,当辨认一个单词完毕,采用返回值的形式返回符号的种类,同时采用程序变量的形式提供当前辨认出记号的属性值。这样配合语法分析程序的分析需要的记号及其属性,生成一个语法树。3、标示符和保存字的词法构成相同,为了更好的实现,把语言的保存字建立一个 表格 关于规范使用各类表格的通知入职表格免费下载关于主播时间做一个表格详细英语字母大小写表格下载简历表格模板下载 存储,这样可以把保存字的辨认放在标示符之后,用辨认出的标示符对比该表格,假如存在该表格中则是保存字,否则是一般标示符。3此法分析器的程序实现3.1状态转换图图1TINY语言的拟定有限自动机(DFA)2程序源码#includeusingnamespacestd;inc1udeinc1udeincIudeclassCApublic:voidgetTokenf);//辨认标记符voidpreDo(char);//预解决源程序voiddisplay();//打印出KA。°(m=n=0;}private:。longcount2;〃符号表//设m为符号表中已有的标记符的个数〃常数表〃设n为常数表中已有的常数的个数〃符号表//设m为符号表中已有的标记符的个数〃常数表〃设n为常数表中已有的常数的个数charID[1O][10];intm;。charCons[10][10];intn;charbufferl[99999];3boolisDigit(char);〃检查是否为数字boolisLetterfchar);//检查是否为字符◎intInsertlD(char*strToken);〃添加符号®intInsertConst(char*strToken);〃添加符号ointSearch(chara[][10],constchar*,int);〃二分查找);//enumvariety{标记符,数字,关键字1,关键字2,关键字3,关键字4,关键字5,关键字6,关键字7,关键字8,特殊符号L//特殊符号2,特殊符号3,特殊符号4,特殊符号5,特殊符号6,特殊符号7,特殊符号8,特殊符号9,特殊符号10};〃关键字bi编码12345678charK[18][10]={"else","end";'if"z"read";'repeat";'then";'until”,write”,iio/nn*iih,n”,u>•/”"="">"V/U//1///f•,/7j/J,boolCA::isDigit(charc)(oif(c<='9'&&c>='0')returntrue;e1sereturnfalse;)boolCA::isLetter(charc)(f(c>=,a'&&c<='z'I|c>=,A'&&c<='Z,)returntrue;oe1sereturnfaIse;)intCA::Search(chara[18][10],constchar*b,intn)(ointleft=O;intright=n-1;intmid=0;®whiIe(Ieft<=right)omid=(1eft+right)/2;iffstrcmp(a[mid],b)==0)returnmid;elseif(strcmp(a[mid],b)<0)left=mid+1;。eIseright=mid-1;)return-1;)intCA::InsertlD(char*strToken)(ointi=0;while(idcerr<<"openerror!"«endl;。abort();。}®charch;intcountl=l;count2=0;
本文档为【2023年词法分析的实验报告】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
建军信息咨询
暂无简介~
格式:doc
大小:92KB
软件:Word
页数:15
分类:
上传时间:2023-02-02
浏览量:2