- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
5.3 LL(1)分析法 5.3.1 LL(1)分析法基本概念 ※ 设有文法G(Z), # 栈底标记和结束标记; 5.3.2 LL(1)文法及其判定 1. 首符号集合、后继符集合与选择符集合 【例5.4】 求文法产生式的选择集合: ※ LL(1)分析法示例: 【例5.6】 G(Z):Z - Z b ① | a ② 5.3.3 LL(1)分析器设计(实现) ※ LL(1)分析法综合示例: 2.构造 LL(1) 分析表: ※ 符号串 a+b# 的LL(1)分析过程: 练习题: 谢谢收看! * * 1. 什麽是LL(1)分析法? ※ LL(1) 分析法的基本要点有三: ⑴ 利用一个分析表,登记如何选择产生式的知识; ⑵ 利用一个分析栈,记录分析过程; ⑶ 此分析法要求文法必须是 LL(1)文法。 LL(1)分析法是指从左到右扫描、最左推导(LL)和只查看一个当前符号(括号中的 1)之意; LL(1)分析法又称预测分析法,与递归子程序法同属于自顶向下确定性语法分析方法; 2. LL(1)分析过程示例 G(Z):Z-dAZ① | bAc② A-aA③ |ε④ 栈 当前符号 剩余序列 栈操作 ⑴ 选择推导产生式后,为什麽要逆序压栈? ⑵ 当栈顶为A,当前单词为c时,为什么选择 A?? ? 讨论 逆序压栈 # # # c A # c # c A # c # c A b A a b a c # 选择 Z?bAc② b a c # 匹配 b a c # 选择A?aA③ a c # 匹配 a c # 选择A?? ④ c # 匹配 c # 正确结束 Z 查分析表 ※ 对符号串:? = bac # 的分析过程: ④ ① d ④ ④ ③ A ② Z # c b a 分析表: # 栈 结束: ② 若 栈顶符=a 且 当前符为a; 则 pop,NEXT(w); # Z ⑴ 开始: 栈 ; NEXT(w) ;当前符 w= # ⑶ ⑵ 重复执行 ①、②、③ ,直到栈中只剩 # 为止: 即:栈调整: # … a # … 即:栈调整: # … A # … ?a 3. LL(1)分析法算法概要 ① 若 栈顶符=A 且 当前符 w=a 且 有产生式: A?a?, 则 POP,PUSH(a?)R ; 逆序压栈! ③ 否则,错误处理! 设 G(Z)=(VN, VT, Z, P),A-? ∈P,则 first(?) , ? ? first(?)∪follow(A), ? ? select(A-?)= = * ≠ * 【注】⑴ ? ?(?可空), ? ?(?不可空); ⑵ 若 ?= ? 则 first(?)={ }; ⑶ 设 #为输入串的结束符,则 #∈follow(Z); = * ≠ * first(?)={ t| ? t…,t∈VT } = * follow(A)={ t| Z …At…,t∈VT } = * 【注】 求 follow(A) 要点: ※ 查所有右部含有A的产生式: B - …A? ① 若 ? 不空时 , 则 first(?)∈follow(A) ; ② 若 ? 取空时 , 则 follow(B)∈follow(A) ; ③ 若 ? = ? 时 , 则 follow(B)∈follow(A)。 select(①)= first(dAZ)={d} select(②)= first(bcA)={b} select(③)= first(aA)={a} select(④)= first(?)∪follow(A)= {b,d,# } 即: B - …A G(Z): Z - dAZ ① | bcA ② A - aA ③ | ? ④ 则有: 产生式序号 【定义】 LL(1)文法是指文法中,具有相同左部的各产生式,其选择集合不相交。 ∵ select(①)= {d} ; 2. LL(1)文法及其判定 LL(1)文法可确保 递归子程序法 和 LL(1)分析法 的正确运用。 【例5.5】 G(Z): Z - dAZ ① | bcA ② A - aA ③ | ? ④ s
您可能关注的文档
- JAVA程序设计第4章.ppt
- JAVA程序设计第5章.ppt
- JAVA程序设计第6章.ppt
- JAVA程序设计第9章.ppt
- JAVA程序设计第10章.ppt
- JAVA程序设计第11章.ppt
- JAVA程序设计第12章.ppt
- 武汉大学计算机学院linux复习题.doc
- Linux原理及应用——专题0:Shell实例 .ppt
- Linux原理与应用——专题2:Makefile.ppt
- 2025年广西中考地理二轮复习:专题四+人地协调观+课件.pptx
- 2025年广西中考地理二轮复习:专题三+综合思维+课件.pptx
- 2025年中考地理一轮教材梳理:第4讲+天气与气候.pptx
- 第5讲+世界的居民课件+2025年中考地理一轮教材梳理(商务星球版).pptx
- 冀教版一年级上册数学精品教学课件 第1单元 熟悉的数与加减法 1.1.6 认识1-9 第6课时 合与分.ppt
- 2025年中考一轮道德与法治复习课件:坚持宪法至上.pptx
- 2025年河北省中考一轮道德与法治复习课件:崇尚法治精神.pptx
- 八年级下册第二单元+理解权利义务+课件-2025年吉林省中考道德与法治一轮复习.pptx
- 精品解析:湖南省娄底市2019-2020学年八年级(上)期中考试物理试题(原卷版).doc
- 2025年中考地理一轮教材梳理:第10讲+中国的疆域与人口.pptx
文档评论(0)