编译原理5.3.2-LR项目集族和LR分析表的构造.ppt
《编译原理5.3.2-LR项目集族和LR分析表的构造.ppt》由会员分享,可在线阅读,更多相关《编译原理5.3.2-LR项目集族和LR分析表的构造.ppt(32页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第五章第五章 语法分析语法分析5.1 自下而上分析基本问题自下而上分析基本问题5.2 算符优先分析算符优先分析 5.3 LR分析分析5.4 YACC5.3 LR分析分析5.3.1 LR分析器分析器5.3.2 LR(0)项目集族项目集族LR(0)分析表的构造分析表的构造5.3.3 SLR分析表的构造分析表的构造5.3.4 规范规范LR分析表的构造分析表的构造5.3.5 LALR分析表的构造分析表的构造5.3.6 二义文法的应用二义文法的应用5.3.2 LR(0)项目集族项目集族LR(0)分析表的构造分析表的构造一、前缀、活前缀一、前缀、活前缀 p104p104二、构造识别文法所有活前缀的二、构造
2、识别文法所有活前缀的DFA DFA p104p104三、三、LR(0)LR(0)项目集规范族的构造项目集规范族的构造 p106p106四、有效项目四、有效项目 p108p108五、五、LR(0)LR(0)分析表的构造分析表的构造 p109p109一、前缀、活前缀一、前缀、活前缀 前缀前缀:符号串的头符号串的头 活前缀活前缀:规范句型的一个前缀规范句型的一个前缀,这种前这种前缀不包含句柄之后的任何符号缀不包含句柄之后的任何符号.*可归前缀可归前缀:包含句柄的活前缀包含句柄的活前缀.规范规范推导推导序列序列 S=aAcBe=aAcde=aAbcde=abbcde,a,ab,a,aA,aAb,a,a
3、A,aAc,aAcd,a,aA,aAc,aAcB,aAcBe活前缀活前缀可归前缀可归前缀ab,aAb,aAcd,aAcBe补充例补充例:找出找出句型句型#abbcde#abbcde#的所有活前缀的所有活前缀G:SaAcBe1 Ab2 AAb3 Bd4ab b c d eAABS当栈顶出现可归前缀即可归约当栈顶出现可归前缀即可归约步步骤骤符号栈符号栈剩余剩余输入串输入串动作动作1 1#abbcdeabbcde#移进移进2 2#a#abbcde#bbcde#移进移进3 3#a#ab bbcde#bcde#归约归约 Ab4 4#aA#aAbcde#bcde#移进移进5 5#a#aAbAbcde#cd
4、e#归约归约 AAb6 6#aA#aAcde#cde#移进移进7 7#aAc#aAcde#de#移进移进8 8#aAc#aAcd de#e#归约归约 Bd9 9#aAcB#aAcBe#e#移进移进1010#aAcBeaAcBe#归约归约 SaAcBe1111#S#S#接受接受abb c d eAABS栈里的文法符号与栈里的文法符号与剩余符号串一起构剩余符号串一起构成了规范句型成了规范句型栈里的文法符号构栈里的文法符号构成活前缀成活前缀 S=aAcBe =aAcde =aAbcde =abbcde 规范规范推导推导序列序列#abbcde#的规范归约过程的规范归约过程二、构造识别文法所有活前缀的二
5、、构造识别文法所有活前缀的DFA 1.LR(0)1.LR(0)项目项目2.2.构造识别文法所有活前缀的构造识别文法所有活前缀的DFADFA3.LR(0)3.LR(0)项目的分类项目的分类1.LR(0)1.LR(0)项目项目在文法在文法G中每个产生式的右部适当位置添加一中每个产生式的右部适当位置添加一个圆点构成项目个圆点构成项目.对空产生式对空产生式A,仅有项目仅有项目A例例:产生式产生式 A XYZ 对应的项目有对应的项目有 AXYZ AXYZAXYZ AXYZ一个产生式可对应的项目个数是它的右部符号长度加一个产生式可对应的项目个数是它的右部符号长度加1 1每个项目的含义与圆点的位置有关每个项
6、目的含义与圆点的位置有关 补充例补充例:若有产生式若有产生式 S aAd,Abc对应的项目对应的项目:(1)SaAd (2)S aAd (3)S aAd (4)SaAd (5)Abc (6)Abc (7)Abc2.2.构造识别文法所有活前缀的构造识别文法所有活前缀的DFADFA1).文法的每个项目都为文法的每个项目都为NFA的一个状态的一个状态 2).确定状态之间的转换关系确定状态之间的转换关系 3).确定化最小化确定化最小化例例5.8 p105 G:SE EaA|bB AcA|d BcB|d 更更正正1SE 2SE 11.EbB3EaA 12.EbB4EaA 13.EbB5EaA 14.Bc
7、B6AcA15.BcB7AcA 16.BcB8AcA 17.Bd9Ad 18.Bd 10.Ad文法的项目文法的项目:1).文法的每个项目都为文法的每个项目都为NFA的一个状态的一个状态2).确定状态之间的转换关系确定状态之间的转换关系X Xi iXXXX1 1X X2 2XXi-1i-1X Xi iXXn nXXXX1 1X X2 2X Xi iX Xi+1i+1XXn nXXA AAA状态状态i状态状态j出自同一产生式出自同一产生式项目项目1 1为为初态初态 P106 NFA1SE2SE 3EaA4EaA 5EaA 6AcA7AcA8AcA 9Ad 10.Ad 11.EbB12.EbB 13
8、.EbB14.BcB15.BcB16.BcB 17.Bd 18.Bd 每个状态都为每个状态都为活前缀识别态活前缀识别态句柄识别态句柄识别态(可归前缀识别可归前缀识别态态):圆点在最后的项目圆点在最后的项目句子识别态句子识别态 p106识别一个文识别一个文法活前缀的法活前缀的DFADFA3).确定化确定化最小化最小化每个状态是一每个状态是一个项目集个项目集,称作称作LR(0)项目集项目集整个状态集称整个状态集称为为LR(0)项目集项目集规范族规范族3.LR(0)3.LR(0)项目的分类项目的分类移进项目移进项目:AAa a分析时把分析时把a a移进符号栈移进符号栈 待约项目待约项目:AAB B用
9、产生式用产生式A A的右部归约时的右部归约时,首先要将首先要将B B的产生式右的产生式右部归约为部归约为B,B,对对A A的右部才能继续进行分析的右部才能继续进行分析 归约项目归约项目:AA 表明一个产生式的右部已分析完,句柄已形成可表明一个产生式的右部已分析完,句柄已形成可以归约以归约 接受项目接受项目:SSSS 表明已分析成功表明已分析成功 三、三、LR(0)项目集规范族的构造项目集规范族的构造构造识别文法活前缀构造识别文法活前缀DFA的三种方法的三种方法*1.求出活前缀的正规表达式,然后由此正规表求出活前缀的正规表达式,然后由此正规表达式构造达式构造NFA,再确定化为再确定化为DFA。2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 5.3 LR 项目 分析 构造
限制150内