编译原理实验七:LL(1)文法的判断
11页1、实验七:LL(1)文法的判断 一:要求输入:任意的上下文无关文法。输出:判断是否为LL(1)文法二:实验目的1掌握LL(1)的判断,掌握求first和follow集合的算法2熟悉运用C/C+语言对求first和follow集合进行实现 三:实验原理设x1x2xn,FIRST()可按下列方法求得:令FIRST(),i1;(1)若xiVT,则xiFIRST();(2)若xiVN; 若 FIRST(xi),则FIRST(xi)FIRST(); 若FIRST(xi),则FIRST(xi)FIRST();(3)ii+1,重复(1)、(2),直到xiVT,(i2,3,n)或xiVN且若 FIRST(xi)或in为止。当一个文法中存在产生式时,例如,存在A,只有知道哪些符号可以合法地出现在非终结符A之后,才能知道是否选择A产生式。这些合法地出现在非终结符A之后的符号组成的集合被称为FOLLOW集合。下面我们给出文法的FOLLOW集的定义。设文法GS(VN,VT,P,S),则 FOLLOW(A)a | S Aa ,aVT。若S A,#FOLLOW(A)。由定义可以看出,FOLLOW(A)是指在文法GS
2、的所有句型中,紧跟在非终结符A后的终结符号的集合。FOLLOW集可按下列方法求得:(1)对于文法GS的开始符号S,有#FOLLOW(S);(2)若文法GS中有形如BxAy的规则,其中x,yV *,则FIRST(y)FOLLOW(A);(3)若文法GS中有形如BxA的规则,或形如BxAy的规则且FIRST(y),其中x,yV *,则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 *p)/可以间接推出空的非终结符void search(Chomsky *p,int n)/提取产生式中的非终结符void First(Chomsky *p,int n,char m,int mm
3、)/求文法中非终结符的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集计算不出,关键在于能产生空的非终结符没有求出来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;/存放可以
《编译原理实验七:LL(1)文法的判断》由会员灯火****19分享,可在线阅读,更多相关《编译原理实验七:LL(1)文法的判断》请在金锄头文库上搜索。
2019年湘阴县第三中学高考生物简单题专项训练(含解析)
2019年耿马县民族中学高考生物简单题专项训练(含解析)
2019年楚雄师院附中高考生物简单题专项训练(含解析)
2019年桥梁工程师年终总结
2019年枣庄东方国际高考生物简单题专项训练(含解析)
2018年一级建造师公路工程实务考点归纳
2019年赣榆县高考生物简单题专项训练(含解析)
2019年春湾中学高考生物简单题专项训练(含解析)
高考地理复习汇总
2019年朝鲜中学高考生物简单题专项训练(含解析)
2019年沧州市运河区派尼中学高考生物简单题专项训练(含解析)
2018年甘肃公务员《行政职业能力测验》试题(网友回忆版)
宾语从句 (解析卷)---2023年中考英语考点详解+专项训练
2018年一级建造师通信与广电实务考点
2019年湖北省襄阳市中考数学试卷(解析版)
文言文阅读(解析版)
中医综合模拟试卷343
2019年单县第二中学高考生物简单题专项训练(含解析)
二级法规考点解析1
2019年低碳经济继续教育模拟考试题库500题(含标准答案)
2023-10-09 9页
2023-10-09 10页
2023-10-09 10页
2023-10-09 7页
2023-10-09 8页
2023-10-09 8页
2023-10-09 8页
2023-10-09 10页
2023-10-09 8页
2023-10-09 8页