![如何判断一个文法是LL(1)文法_第1页](http://file4.renrendoc.com/view/f2e4f40155a8c2396acdaf5a6e03995b/f2e4f40155a8c2396acdaf5a6e03995b1.gif)
![如何判断一个文法是LL(1)文法_第2页](http://file4.renrendoc.com/view/f2e4f40155a8c2396acdaf5a6e03995b/f2e4f40155a8c2396acdaf5a6e03995b2.gif)
![如何判断一个文法是LL(1)文法_第3页](http://file4.renrendoc.com/view/f2e4f40155a8c2396acdaf5a6e03995b/f2e4f40155a8c2396acdaf5a6e03995b3.gif)
![如何判断一个文法是LL(1)文法_第4页](http://file4.renrendoc.com/view/f2e4f40155a8c2396acdaf5a6e03995b/f2e4f40155a8c2396acdaf5a6e03995b4.gif)
![如何判断一个文法是LL(1)文法_第5页](http://file4.renrendoc.com/view/f2e4f40155a8c2396acdaf5a6e03995b/f2e4f40155a8c2396acdaf5a6e03995b5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、LL的含义自左向右扫描分析输入符号串从识别符号开始生成句子的最左推导LL(1):向前看一个输入符号,便能唯一确定当前应选择的规则LL(k):向前看k个输入符号,才能唯一确定当前应选择的规则4.2.3 LL(1)文法的判别 要构造确定的自顶向下分析程序要求描述文法必须是LL(1)文法 1同一非终结符有多个候选式时 引起回溯的原因 【例4.1】 =acbGS: SaAbAcd|c(1)候选式的终结首符号相同(2)候选式的终结首符号相同【例4.8】 SAaAa| 21. FIRST集 FIRST():从可能推导出的所有开头终结符号或对于文法G的所有非终结符的每个候选式,其终结首符号集称为FIRST集
2、,定义如下:,则规定FIRST()若【例】 SaAbAcd|ca ,aVTFIRST()=a|FIRST(aAb) =aFIRST(cd) =cFIRST(c) =c【例】 SAaAa| FIRST(a) =aFIRST() = FIRST(Aa) =aFIRST(S) =aFIRST(A) =cFIRST(S) =aFIRST(A) =a, 3(1)若=a,且aVT ,则aFIRST(); 例: FIRST(i)=i FIRST(+TE)=+ETEE+TE|TFTT*FT|F(E)|i构造FIRST集的算法(2)若=X,XVN,且有产生式Xb,则把b加入到FIRST()中; 例: FIRST
3、(FT)=(,i ?4 将FIRST(X1)中的一切非的终结符加进FIRST(); 若FIRST(X1),则将FIRST(X2)中的一切非的终结符加进FIRST(); 若FIRST(X1)且FIRST(X2),则将FIRST(X3)中的一切非的终结符加进FIRST(); 依此类推,若对于一切1in,FIRST(Xi),则将加进FIRST()。(3)若=X1X2 Xn,其中XiVN , 1in;ETEE+TE|TFTT*FT|F(E)|i例:FIRST(FT)= 注意:要顺序往下做,一旦不满足条件,过程就要中断进行FIRST(F)-=(,i5FIRST(F)=(,iFIRST(T)=*,FIRS
4、T(T)=FIRST(F)-=(,iFIRST(E)=+,FIRST(E)= FIRST(T)-=(,iFIRST(TE)=FIRST(T)-=(,iFIRST(+TE)=+ FIRST()=FIRST(FT)= FIRST(F)-=(,iFIRST(*FT) =*FIRST((E))=(FIRST(i)=i【例4.9】 GEETEE+TE|TFTT*FT|F(E)|i62. FOLLOW集 FOLLOW(A):是所有句型中紧接A之后的终结符号或#对于文法G的非终结符的后继符号集称为FOLLOW集,定义如下: A,则规定#FOLLOW(A)若SAa,a VTFOLLOW(A) =a|S ETE
5、E+TE|TFTT*FT|F(E)|iT+TE ,则+FOLLOW(T)E7构造集合FOLLOW的算法(1)若为开始符号,则把“#”加入FOLLOW(A)中;(2)若BA (),则把FIRST()-加入FOLLOW(A)中; 注:FOLLOW集合中不能有(3)若BA 或BA,且则把FOLLOW(B)加入FOLLOW(A) 中。 ,ETEE+TE|TFTT*FT|F(E)|i#FOLLOW(E)由F(E)可知, )FOLLOW(E)由ETE,应把FOLLOW(E)加入FOLLOW(E)由E + TE 且E ,应把FOLLOW(E )加入FOLLOW(T)8【例4.10】 GEETEE+TE|TF
6、TT*FT|F(E)|i求FOLLOWFOLLOW(E)=#,) E是开始符号#FOLLOW(E) 又F (E) )FOLLOW(E)FOLLOW(E)=#,) E TE FOLLOW(E)加入 FOLLOW(E)FOLLOW(T)=+,),# E +TE FIRST(E)-加入FOLLOW(T) 又E, FOLLOW(E)加入FOLLOW(T)FOLLOW(T)= FOLLOW(T)= +,),# T FT FOLLOW(T)加入FOLLOW(T)FOLLOW(F)=*,+,),# T FT FOLLOW(F)=FIRST(T)- 又T FOLLOW(T)加入FOLLOW(F)FIRST(F)=(,iFIRST(T)=*,FIRST(T) =(,iFIRST(E)=+,FIRST(E)=(,i9若一个文法满足以下条件,则称该文法G为LL(1)文法:(1)文法不含左递归;(2)对于每个非终结符A的各个候选式的终结首符号集两两不相交。即,如果A1|2|n,则FIRST(i)FIRST(j)= ,其中1i,jn,且ij。(3)对于文法中每个非终结符A,若它某个候选式的终结首符号集包含,则FIRST(A)FOLLOW(A)3LL(1)文法的判别条件10【例4
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度房地产经纪公司品牌合作合同
- 2025年度数字经济产业发展基金投资管理合同
- 2025年度农业贷款土地经营权质押合同
- 2025年度大型水利工程勘察设计合同协议书
- 2025年度互联网金融平台数据保密合同范本
- 2025年度家庭暖气管道清洗及维修服务合同
- 2025年度企业贷款合同风险防范与模板
- 2025年度建筑钢结构工程承包合同(技术创新应用)
- 2025年度国际物流运输风险评估合同范本
- 2025年化肥厂办公楼承包修建及能源管理服务合同
- 北京三甲中医疼痛科合作方案
- QCT957-2023洗扫车技术规范
- 新外研版高中英语选择性必修1单词正序英汉互译默写本
- 自愿断绝父子关系协议书电子版
- 2023年4月自考00504艺术概论试题及答案含解析
- 美丽的大自然(教案)2023-2024学年美术一年级下册
- 2024年低压电工考试题库(试题含答案)
- 成都特色民俗课件
- 花城版音乐四下-第四课-认知音乐节奏(教案)
- 统编版语文五年级下册 《古诗三首》公开课一等奖创新教学设计及反思
- 宠物医院员工手册
评论
0/150
提交评论