第五章

LR分析方法是一种自下而上的分析方法

LR分析法的归约过程是规范推导的逆过程,所以LR分析过程是一种规范归约过程

LR分析过程:第一步  分析开始时,首先将初始状态SO及句子左界符,推入分析栈中

第二步  设在分析的某一步,分析栈及余留的输入符号串处于如下的格局

第三步  重复上述第二步的工作,直到在分析的某一步,栈顶出现“接受状态”或“出错状态”为止。


非LR文法结构:非LR结构

                             LR文法不是二义的,二义文法肯定不会是LR的。

结论:LR文法肯定是无二义的,即二义文法都不是LR文法


活前缀与句柄间的关系:

(1)活前缀中已含有句柄的全部符号(句柄的符号即为其最右符号)。

(2)活前缀中含句柄的一部分符号(句柄开头的 若干符号与活前缀最右的若干个符号一致)。

(3)活前缀中全然不包含句柄的任何符号 。

构造识别活前缀的NFA:1、构造文法的所有产生式的项目,每个项目都为NFA的一个状态。
  2、确定初态、句柄识别态、句子识别态。
由于S′(起始符)仅在第一产生式的左部出现 ,因此规定起始符相关的项目1为初态 
其余每个状态都为活前缀的识别态(终态)
圆点在最后的项目为句柄识别态 

第一个产生式的句柄识别态为句子识别态 

构造识别文法活前缀DFA的两种方法:1、求出文法的所有项目,按一定规则构造识别活前缀的NFA再确定化为DFA。

2、把拓广文法的第一个项目{S′→·S}作为初态集的核,通过求核的闭包和转换函数, 求出LR(0)项目集规范族,再由转换函数建立状态之间的连接关系得到识别活前缀的DFA。


LR(0)文法:LR(0)项目集规范族不存在移进-归约,或归约-归约冲突,称为LR(0)文法。
  只有是LR(0)文法,才能构造相应的LR(0)分析表,才能用LR(0)分析法对句子进行分析。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值