《编译技术编译原理 (27).pdf》由会员分享,可在线阅读,更多相关《编译技术编译原理 (27).pdf(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、编译技术语 法 分 析非 L R 的 上 下 文 无 关 结 构若自左向右扫描的移进-归约分析器能及时识别出现在栈顶的句柄,那么相应的文法就是LR的语言L=wwR|w(a|b)*的文法SaSa|bSb|不是LR的ababbbbaba语言L=wcwR|w(a|b)*的文法SaSa|bSb|c是LR的ababbcbbaba 非 L R 的 上 下 文 无 关 结 构例:为语言L=ambn|n m 0 写三个文法,它们分别是LR(1)的、二义的和非二义且非LR(1)的LR(1)文法:S ABA aAb|B Bb|b 非二义且非LR(1)的文法:S aSb|B B Bb|b a a a b b b b
2、 ba a a b b b b b非 L R 的 上 下 文 无 关 结 构例:为语言L=ambn|n m 0 写三个文法,它们分别是LR(1)的、二义的和非二义且非LR(1)的 LR(1)文法:S ABA aAb|B Bb|b 非二义且非LR(1)的文法:S aSb|B B Bb|b 二义的文法:S aSb|Sb|b a a ab b b bb二 义 文 法 的 特 点二义文法决不是LR文法 二义文法:E E+E|E E|(E)|id简洁、自然 非二义的文法:E E+T|TT T F|FF (E)|id可以用文法以外的信息来消除二义语法分析的效率高(基于消除二义后得到的分析表)二 义 文 法
3、 的 应 用使用文法以外信息来解决分析动作冲突 二义文法:E E+E|E E|(E)|id 规定:优先级高于+,两者都是左结合LR(0)项目集I8E E E E E+EE E E 面临+,归约面临)和$,归约面临,归约id id+idid id id二 义 文 法 的 应 用特殊情况产生式引起的二义性E E sub E sup EE E sub EE E sup EE E E c联系到语义处理,第一个产生式是必要的从定义形式语言的角度说,第一个产生式是多余的二 义 文 法 的 应 用特殊情况产生式引起的二义性E E sub E sup EE E sub EE E sup EE E E ca sub i sup 22ia2ia2iaI11:E E sub E sup EE E sup E.编译技术语 法 分 析