ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:16.18KB ,
资源ID:6706052      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6706052.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(编译原理实验报告LL1分析法.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

编译原理实验报告LL1分析法.docx

1、编译原理实验报告LL1分析法编译原理实验报告LL(1)分析法编译原理实验报告LL(1)分析法河南工业大学实验报告课程编译原理实验名称实验二LL(1)分析法实验目的1掌握LL(1)分析法的基本原理;2掌握LL(1)分析表的构造方法;3掌握LL(1)驱动程序的构造方法。一.实验内容及要求根据某一文法编制调试LL(1)分析程序,以便对任意输入的符号串进行分析。本次实验的目的主要是加深对预测分析LL(1)分析法的理解。对下列文法,用LL(1)分析法对任意输入的符号串进行分析:(1)E-TG(2)G-+TG(3)G-(4)T-FS(5)S-*FS(6)S-(7)F-(E)(8)F-i程序输入一以#结束的

2、符号串(包括+*()i#),如:i+i*i#。输出过程如下:步骤分析栈剩余输入串所用产生式1Ei+i*i#E-TG.二.实验过程及结果代码如下:#include#includeedge.husingnamespacestd;edge:edge()cinleftright;rlen=right.length();if(nodE.find(left)nodE.length()nodE+=left;stringedge:getlf()returnleft;stringedge:getrg()returnright;stringedge:getfirst()returnfirst;stringedge

3、:getfollow()returnfollow;stringedge:getselect()returnselect;stringedge:getro()stringstr;str+=right0;returnstr;intedge:getrlen()returnright.length();voidedge:newfirst(stringw)inti;for(i=0;iif(first.find(wi)first.length()first+=wi;voidedge:newfollow(stringw)inti;for(i=0;iif(follow.find(wi)follow.lengt

4、h()&wi!='')follow+=wi;voidedge:newselect(stringw)inti;for(i=0;iif(select.find(wi)select.length()&wi!='')select+=wi;voidedge:delfirst()inti=first.find('');first.erase(i,1);intSUm;stringnodE,EnodE;/计算firstvoidfirst(edgeni,edge*n,intx)inti,j;for(j=0;jif(ni.getlf()=nj.getlf()if(n

5、odE.find(nj.getro()for(i=0;iif(ni.getlf()=nj.getro()first(ni,n,x);elsenx.newfirst(nj.getro();/计算followvoidfollow(edgeni,edge*n,intx)inti,j,k,s;stringstr;for(i=0;is=nodE.find(ni.getrg()i);if(s-1)/是非终结符if(ifor(j=0;jif(nj.getlf().find(ni.getrg()i)=0)if(nodE.find(ni.getrg()i+1)for(k=0;kif(nk.getlf().fin

6、d(ni.getrg()i+1)=0)nj.newfollow(nk.getfirst();if(nk.getfirst().find()elsestr.erase();str+=ni.getrg()i+1;nj.newfollow(str);/计算selectvoidselect(edge&ni,edge*n)inti,j;if(EnodE.find(ni.getro()ni.newselect(ni.getro();if(ni.getro()=)ni.newselect(ni.getfollow();elsefor(i=0;ifor(j=0;jif(ni.getrg()i=nj.getlf

7、()0)ni.newselect(nj.getfirst();if(nj.getfirst().find('')nj.getfirst().length()return;/输出集合voidout(stringp)inti;if(p.length()=0)return;coutfor(i=0;icoutcout/连续输出符号voidoutfu(inta,stringc)inti;for(i=0;icout/输出预测分析表voidoutgraph(edge*n,string(*yc)50)inti,j,k;boolflag;for(i=0;iif(EnodEi!=''

8、;)下页编译原理实验报告LL(1)分析法outfu(10,);coutoutfu(10,);coutintx;for(i=0;ioutfu(4,);coutoutfu(5,);for(k=0;kflag=1;for(j=0;jif(nodEi=nj.getlf()0)x=nj.getselect().find(EnodEk);if(x-1)coutycik=nj.getrg();outfu(9-nj.getrlen(),);flag=0;x=nj.getselect().find('#');if(k=EnodE.length()-1&x-1)coutycij=nj.getrg(

9、);if(flag&EnodEk!='')outfu(11,);cout/分析符号串intpipei(string&chuan,string&fenxi,string(*yc)50,int&b)charch,a;intx,i,j,k;b+;coutif(b9)outfu(8,);elseoutfu(9,);coutoutfu(26-chuan.length()-fenxi.length(),);coutoutfu(10,);a=chuan0;ch=fenxifenxi.length()-1;x=EnodE.find(ch);if(x-1)if(ch=a)fenxi.erase(

10、fenxi.length()-1,1);chuan.erase(0,1);coutif(pipei(chuan,fenxi,yc,b)return1;elsereturn0;elsereturn0;elseif(ch='#')if(ch=a)coutreturn1;else()return0;elseif(ch='')fenxi.erase(fenxi.length()-1,1);if(pipei(chuan,fenxi,yc,b)return1;elsereturn0;elsei=nodE.find(ch);if(a='#')x=EnodE.f

11、ind('');if(x-1)j=EnodE.length()-1;elsej=EnodE.length();elsej=EnodE.find(a);if(ycij.length()coutfenxi.erase(fenxi.length()-1,1);for(k=ycij.length()-1;k-1;k-)if(ycijk!='')fenxi+=ycijk;if(pipei(chuan,fenxi,yc,b)return1;elsereturn0;elsereturn0;voidmain()edge*n;inti,j,k;boolflag=0;coutcin

12、SUm;coutn=newedgeSUm;for(i=0;iif(nodE.find(strj)nodE.length()&EnodE.find(strj)EnodE.length()EnodE+=strj;/计算first集合for(i=0;i/outfu(10,*);coutfor(i=0;ibreak;if(nj.getfirst().find()nj.getfirst().length()ni.delfirst();break;/计算follow集合for(k=0;kfollow(ni,n,i);for(i=0;i/计算select集合for(i=0;ifor(i=0;ifor(j=0

13、;jelsefor(k=0;kbreak;/输出上页下页余下全文编译原理实验报告LL(1)分析法coutoutfu(SUm,);coutoutfu(SUm,);coutoutfu(5+SUm,-*-);coutfor(i=0;i);coutoutfu(SUm+4,);out(nj.getfirst();outfu(SUm+4-2*nj.getfirst().length(),);out(nj.getfollow();coutbreak;outfu(5+SUm,-*-);cout;if(flag)coutreturn;elsecout/输出预测分析表coutyc=newstringnodE.length()50;outgraph(n,yc);stringchuan,fenxi,fchuan;coutcinchuan;fchuan=chuan;fenxi=#;fenxi+=nodE0;i=0;coutcoutoutfu(7,);coutoutfu(10,);coutoutfu(8,);coutif(pipei(chuan,fenxi,yc,i)coutelsecout截屏如下:三.实验中的问题及心得这次实验让我更加熟悉了LL(1)的工作流程以及LL(1)分析表的构造方法。以前课堂上搞不懂的算法流程通过实验都能得到进一步的了解。上页

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1