编译原理第七章探索.ppt

根据NFA到DFA的转换规则得到识别文法G(S?)的活前缀的DFA如下: i a A b {1,2,4} {3,2,4} {6} {5} {3,2,4} {3,2,4} {7} {5} {6} ? ? ? {5} ? ? ? {7} ? ? ? 重新命名后的DFA 1 2 3 4 5 A A b b a a 用LR(0)项目代替DFA状态图 S???A A??aA A??b A?a?A A??aA A?? b A?b? S??A? A?aA? b b A A a a 上述的DFA由五个项目组成, 其中对应状态1、2的项目集仅 含移进项目和待约项目,而对 应状态3、4、5的项目集仅含 规约项目。 定义:识别文法G活前缀的DFA项目集的 全体称为文法G的LR(0)项目集规范族。 在这个规范族中一共有5个项目集合。 LR(0)分析表的构造 LR(0)项目集规范族中的每一个LR(0)项目集,实际上表征了在分析过程中可能出现的一种分析状态 项目集中每一个项目又与另一个特定的分析动作相关。因此,项目集中各项目应是相容的。 定义:若一个文法G的识别活前缀的DFA的每一个项目不存在1、既含移进项目又含规约项目或2、含多个规约项目。则每个项目集的项目相容,称G是一个LR(0)文法。(否则,将产生矛盾,出现不确定性) 对于任何一个LR(0)文法,一定存在LR(0)分析表。分析表可以通过以下方法构造

文档评论(0)

1亿VIP精品文档

相关文档