宁波网站设计推广服务公司seo的优化策略有哪些
web/
2025/10/9 10:44:47/
文章来源:
宁波网站设计推广服务公司,seo的优化策略有哪些,泉州程序员做网站网站维护,做ppt好的模板下载网站有哪些《编译原理实验七#xff1a;LL1文法的判断》由会员分享#xff0c;可在线阅读#xff0c;更多相关《编译原理实验七#xff1a;LL1文法的判断(11页珍藏版)》请在人人文库网上搜索。1、实验七#xff1a;LL(1)文法的判断 一#xff1a;要求输入#xff1a;任意的上下文无…《编译原理实验七LL1文法的判断》由会员分享可在线阅读更多相关《编译原理实验七LL1文法的判断(11页珍藏版)》请在人人文库网上搜索。1、实验七LL(1)文法的判断 一要求输入任意的上下文无关文法。输出判断是否为LL(1)文法二实验目的1掌握LL(1)的判断掌握求first和follow集合的算法2熟悉运用C/C语言对求first和follow集合进行实现 三实验原理设x1x2xnFIRST()可按下列方法求得令FIRST()i1(1)若xiVT则xiFIRST()(2)若xiVN 若 FIRST(xi)则FIRST(xi)FIRST() 若FIRST(xi)则FIRST(xi)FIRST()(3)ii1重复(1)、(2)直到xiVT(i23n)或xiVN且若 FIRST(xi)。2、或in为止。当一个文法中存在产生式时例如存在A只有知道哪些符号可以合法地出现在非终结符A之后才能知道是否选择A产生式。这些合法地出现在非终结符A之后的符号组成的集合被称为FOLLOW集合。下面我们给出文法的FOLLOW集的定义。设文法GS(VNVTPS)则FOLLOW(A)a | S Aa aVT。若S A#FOLLOW(A)。由定义可以看出FOLLOW(A)是指在文法GS的所有句型中紧跟在非终结符A后的终结符号的集合。FOLLOW集可按下列方法求得(1)对于文法GS的开始符号S有#FOLLOW(S)(2)若文法GS中有形如BxAy的规则其中xyV *则FI。3、RST(y)FOLLOW(A)(3)若文法GS中有形如BxA的规则或形如BxAy的规则且FIRST(y)其中xyV *则FOLLOW(B)FOLLOW(A)四数据结构与算法typedef struct Chomsky /定义一个产生式结构体string left; /定义产生式的左部string right; /定义产生式的右部Chomsky;void apart(Chomsky *p,int i) /分开产生式左右部i代表产生式的编号string is_empty(Chomsky *p)/判断某非终结符能否直接推出空空用#代替string isempty(Chomsky *。4、p)/可以间接推出空的非终结符void search(Chomsky *p,int n)/提取产生式中的非终结符void First(Chomsky *p,int n,char m,int mm)/求文法中非终结符的First集void Follow(Chomsky *p,int n,int m)/求文法的follow集string erase(string s)/去First集及follow集中的重复字符void select(string s1,string s2)/求产生式的select集,s1是产生式左部s2是产生式右部五出错分析1:select集计算不出关键在于能产生空的非终结。5、符没有求出来2:单个符号的first集与一串符号的first集区别3:实验最后没能输出select集没能判断出来是否是LL(1)文法 六实验结果与分析七源代码#include#includeusing namespace std;#define max 100typedef struct Chomsky /定义一个产生式结构体string left; /定义产生式的左部string right; /定义产生式的右部Chomsky;int n;/产生式总数string strings;/存储产生式string noend;/存放文法中的非终结符string empty;/存放可以推出空的非。6、终结符string firstmax;/存放非终结符的first集string followmax;/存放非终结符的follow集string selectmax;/存放产生式的select集void apart(Chomsky *p,int i) /分开产生式左右部i代表产生式的编号int j;for(j0;j0)/若此非终结符已经存在直接推出空那里在此无需重复计算elsefor(j0;j0noend.find(pi.left0)0noend.find(pi.rightj)pi.right0)firstmmfirstmmpi.right.substr(0,1);if(pi.right0#)firstmmfirstmmpi.right.substr(0,1);if(Api.right0)for(j0;jn;Chomsky *pnew Chomskyn; / 初始化产生式数组for(i0;istrings; apart(p,i); coutf;search(p,n);/提取产生式中的非终结符/emptyis_empty(p)isempty(p);/可以推出空的所有非终结符for(m0;mpi.right:selectiendl;system(pause。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/89588.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!