编译原理之LR分析

1.LR(0)项目集规范组的构造

构成识别一个文法构造的DFA项目集的全体叫做这个文法的LR(0)项目集规范族(列表法)

2.LR(0)项目

如果U ::= ub 是文法G的一个规则,其中u或v可为空串,则U—>u.v是G的一个LR(0)项目

(文法G中每个产生式右边适当位置添加一个圆点构成项目)

这六个项目含义不同,一个产生式一共可以产生长度+1个项目

如果是空产生式,如果A只能推出空串,A - > ·

3.LR(0)项目的含义

每个LR(0)项目的含义与圆点的位置有关

移进项:圆点后面为终结符的项目

待约项:圆点后面为非终结符的项目

归约项:圆点在最右边的项目

接受项:Z - > u.,Z是识别符号

初始项:文法G[Z]的LR(0)项目Z ->.u,称为G的初始项

后继项:设U ->u·Av是文法G的一个LR(0)项,A∈V,则LR(0) U ->uA.v是后继项

项目集(项集):LR(0)项所组成的集合

后继项集:如果一个项集有一个项目,其中圆点后面是X,则在X进入的状态是X的后继状态,相继是X的后继项集

项集的闭包:设Sj是文法G的一个项集,项集Sj的闭包CLOSURE(Sj)是按照下列步骤得到的项集

(1)Sj的每一个项都在CLOSURE中

(2)如果U ->u.Vv∈CLOSURE(Sj),且 V::=w是一个规则,把V ->w放入CLOSURE(Sj)中

(3)重复步骤2,直到不在扩大

4.LR(0)项集规范族的构造步骤

5.项集规范族和特征有穷状态机

文法的LR(0)项集规范族可以被抽象成一个有穷状态机(FSM)

4.LR(0)文法的定义

LR(0)项目集规范族不存在移进-归约冲突或者归约-归约冲突的时候,称其为LR(0)文法(LR(0)分析表不存在多重定义)

5.GO(I,X)转换函数

GO(I,X) = CLOSURE(J)        I是状态,X是后继符号,J是基本项集

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值