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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

编译原理实验报告FIRST集和FOLLOW集文档格式.docx

1、n为止。当一个文法中存在产生式时,例如,存在A-,只有知道哪些符号可以合 法地出现在非终结符A之后,才能知道是否选择Af产生式。这些合法地出现 在非终结符A之后的符号组成的集合被称为FOLLOW集合。下面我们给出文 法的FOLLOW集的定义。设文法 G|S= (Vn, Vr, P, S),贝IFOLLOW (A) =a | S=. Aa aevTo若 S=A, #e FOLLOW (A)o由定义可以看出,FOLLOW (A)是指在文法GS的所有句型中,紧跟在 非终结符A后的终结符号的集合。FOLLOW集可按下列方法求得:(1)对于文法GS的开始符号S,有#eFOLLOW (S);(2)若文法G

2、S中有形如B-xAy的规则,其中x, yV*,则FIRST (y) -cGFOLLOW (A);(3)若文法GS中有形如B-*xA的规则,或形如B-*xAy的规则且丘 FIRST (y),負中 x, yev 贝0 FOLLOW (B) GFOLLOW (A);3.实验内容计算first集合和follow集合4.实验心得通过上机实验我对文法符号的FIRST集和FOLLOW集有了更深刻的理解, 已经熟练的掌握了求解的思想和方法,同时也锻炼了自己的动手解决问题的能 力,对编程能力也有所提高。5.实验代码与结果#includestringalgorithmusing namespace std;用于存

3、放每个终结符的用于存放每个非终结符/用于存放每个非终结#define MAXS 50 int NONEMAXS=0; string strings;/产生式 string Vn;/非终结符 string Vt;/ 终结符 string firstMAXS; first 集 string FirstMAXS;/ 的first集 string FollowMAXS; 符的follow集 int N;/产生式个数百匸2du (00lx(uh4a_E:d)pu!t (zbvnl匸a-EdQQMHAm卫d)!t+o6ua一煌一d(Mv0HEO4+ZV0)04:34.E(F M1S)1N po H足N後/

4、26 一6usca- 6uMIS 10ES elseif(Vt.find(pi.leftj)100)Vt +=pi.leftj; for(j=0;jv(int)pi.right.length();j+)if(!(pi.rightj=A&pi.rightj100) Vt +=pi.rightj;elseif(Vn.find(pi.rightj)100) Vn+=pi.rightj;void getlr(STR *p,int i)int j; for(j=0;jvstrings .l ength();if(stringsj=-stringsj+1=)pi .l eft=strings substr

5、(0,j);pi .right=strings .substr(j+2,stringsength()-j); 对每个文法符号求first集string Letter_First(STR *p,char ch)int t;(Vt .find(ch)100)firstVt .find(ch)=ch; return firstVt find(ch)-1;(Vn.find(ch)for(int i=0;i1O0) if(FirstVn.find(ch).find(pi.right0)1OO) FirstVn.find(ch)+=pi.right0;if(pi.right0=*if(FirstVn.fi

6、nd(ch).find()FirstVn find(ch)+=(Vn .find(pi .right0)if(pi .right length()=1)string ff; ff=Letter_First(p,pi right0); for(int i_i=0;i_ivfflength();i_i+) if( FirstVn.find(ch).find(ffi_i)FirstVn.find(ch)+=ffi_i;for(intj=0;jvpi.rightength();string TT;TT=Letter_First(p,pi rightj);(TT. find(10 0)&(j+1)vpi

7、 .right .1 ength() )sort(TT begin(),TT .end();string tt;t=1;tFirstVn.find(ch)+=TTt; for(t=0;TT.length();t+) break;return FirstV n. find(ch);/求每个非终结符的Follow集string Letter_Follow(STR *p,char ch) int t,k;NONEV n. find(ch)+; if(NONEVn .find(ch)=2) NONEVn .find(ch)=0; return FollowV n. find(ch);for(int j

8、=0;jFollowVn .find(ch)+=ggk;string FF;jj=j+1;jjvpi.right.length();jj+)TT=Letter_First(p,pi rightjj);(TT .find(100)&(jj+1)10 0&TTt!FF+=TTt;if( FF.find(TTt) FF+=TTt; break;if(FF.find(for(k=0;kFollowVn.find(ch)+=FFk; for(k=0;if(FollowVn .find(ch) .find(FFk)FF k!FollowVn .find(ch)+=FFk;string dd;dd=Lett

9、er_Follow(p,pi .left0);NONEVn .find(pi .1 eft0)=0; for(k=0;kvdd length();if(FollowVn.find(ch).find(ddk)FollowVn.find(ch)+=ddk;return FollowVn.find(ch);void result()coutvvn该文法不是LL(1)型文法vvendl;主函数int main()int i,j,k;COUtVV请输入产生式总数:cinn请输入各产生式(*代表 空):STR *p=new STRMAXS;for(i=0;cinstrings; getlr(p,i);VN

10、VT(p);coutvvendl;n= 非 终 结 符vvtFIRSTttFOLLOWvvendl;Vnength(); vvVnivvttstring pp;pp=Letter_First(p,Vni);j+lvpp length();coutvvppjvv,coutvvpppp .l ength()-1vvFollow0+=# string ppp;ppp=Letter_Follow(p,Vni);k+lvppp .l ength();coutvvpppkvvcoutvvpppppp.length()-1vv result();coutnreturn 0;幘输入各产生式(刈弋表空):K-ABE-bGfl-fi-bB-aDC-ADhD-aSD -c非终结符FIRSTFOLLOUA*.bB*,a#Cb,a,cDApC

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

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