第四章(3) LR分析方法 LR分析概述 LR分析法:L——从左向右扫描输入串,R——构造最右推导的逆过程 大多数用上下文无关文法描述的高级语言的语法成分可以用LR分析器来识别。 LR分析:采用移进-归约分析,严格的规范归约。 LR分析根据当前分析栈中的符号串和向右顺序查看输入串的K(K≥0)个符号就可以唯一确定分析的动作是移进还是归约。 向前查看0个符号,就是LR(0)分析方法,向前查看1个符号,就是LR(1)方法。 LR分析的优缺点 优点: 比其他“移进-归约”方法使用广泛,识别率高 能用LL(1)分析法分析的所有文法都能使用LR方法来进行分析。 LR分析法在扫描输入串时就能发现其中的任何错误,并能准确地指出出错位置。 缺点: 手工构造分析表工作量太大。必须使用自动生成器。 自底向上分析法的关键问题是如何确定句柄。LR分析法与算符优先方法一样,LR方法也是通过求句柄逐步归约来进行语法分析。 在算符优先分析中,通过算符的优先关系得到句柄——“最左素短语”,LR方法中句柄是通过识别活前缀而求得。 根据Sm和ai查action表, action[Sm, ai]有4种情况: LR文法:对一个文法,如果能够构造一个分析表,且它的每个入口均是唯一的 如何构造LR分析表? 练 习 求文法:S ?aS | bS |a 的LR(0)项目集 写出文法的所有项目,每个项目是一个状态 规定项目1为NFA的唯一初态 若状态i和状态j出自同一产生式,而且状态j的圆点只落后于状态i一个位置: 若i的圆点后是a,从i到j画一条弧,标记为a 若i的圆点后是A,则连两种弧:(1)从状态i画ε弧到所有的A→·β的状态。(2)从状态i到j画弧,标记为A 归约项目表示结束状态,用双圈表示 例:求文法对应的NFA S ?E E ?aA | bB A ?cA | d B ?cB | d 2)画出NFA 5、LR(0)项目集规范族的构造: LR(0)项目集规范族的定义:构成识别一个文法活前缀的DFA的项目集的全体 构造方法有两种: 1)先构造NFA,使用第三章的子集法将NFA确定化 2) 直接使用闭包和状态转换函数进行计算 1)使用第三章的子集法将NFA确定化,得到一个识别该文法的确定的有穷自动机,其每个状态是项目集 一个项目集I的闭包Closure(I)的计算: (1) I中的任何项目都?Closure(I) (2) 若A ? ?·B??Closure(I), 且B ? VN ,则对任何关于B的产生式: B ? · r ?Closure(I),r为任意符号串 (3) 重复(2)直到Closure(I)不再增加为止。 例:对于文法5.7有下列项目: 1. S ?·E 2. S ?E · 3. E ?·aA 4. E ?a·A 5. E ?aA· 6. A ? · cA 7. A ?c · A 8. A ?cA · 9. A ?·d 10. A ? d· 11. E ?·bB 12. E ? b·B 13. E ? bB· 14. B ?·cB 15. B ?c·B 16. B ?cB · 17. B ?·d 18. B ? d· 状态转换函数GO(I,X)的计算: GO(I,X) = Closure(J) I是一个项目集,X是一个文法符号 其中J = {任何形如A ? ?X·?的项目| A??·X?? I} GO函数实际就是检查I中的每一个后继符号为X的项目,将这个圆点向后移动一个位置,得到项目集J,再对项目集J求闭包。 例:对于上面的例题文法5.7有下列项目 1. S ?·E 2. S ?E · 3. E ?·aA 4. E ?a·A 5. E ?aA· 6. A ? · cA 7. A ?c · A 8. A ?cA · 9. A ?·d 10. A ? d· 11. E ?·bB 12. E ? b·B 13. E ? bB· 14. B ?·cB 15. B ?c·B 16. B ?cB · 17. B ?·d 18. B ? d· 1. 拓广文法:在原文法G[S]上增加一个产生式S →S,这是为了得到唯一的接受状态S →S · 2. 设项目集规范族C只包含第一个状态{S→ · S}的闭包,即C = { Closure({S → · S}) } 3. 利用GO函数对C中的每个项目集和每个符号X计算其
您可能关注的文档
最近下载
- 学前儿童科学教育与活动指导第一版课件.pptx VIP
- 部编版一下语文吃水不忘挖井人教案.doc VIP
- 一年级语文下册写字表笔画笔顺组词造句(打印版).pdf VIP
- 北师大版七年级下册生物导学案.pdf VIP
- 部编版语文五年级下册教学计划及进度表.doc VIP
- oracleebsopm标准功能培训opm成本v10.pdf VIP
- 新教材高中政治选择性必修2《法律与生活》全册同步课时练习题含答案解析.pdf VIP
- 2025年及未来5年中国风机叶轮动平衡机市场现状数据分析及数据监测报告.docx
- 高中数学预备知识教学研究.pptx VIP
- 【基恩士】SR-2000_1000 系列 × 三菱电机 iQ-F FX5 系列 连接指南 Ethernet PLC链接通信_Ethernet 端口内置CPU.pdf VIP
原创力文档

文档评论(0)