最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

要证明一个文法是SLR(1)文法,但不是LL(1)文法,是不是要分SLR和LL来分析说明呢?

来源:懂视网 责编:小OO 时间:2024-10-25 05:52:46
文档

要证明一个文法是SLR(1)文法,但不是LL(1)文法,是不是要分SLR和LL来分析说明呢?

是。一、例如:证明下列文法是LL(1)文法但不是SLR(1)文法。S->;AaAb|BbBa A->;ᵋ;(空值) B->;ᵋ;(空值)。1、首先该文法无左递归存在,没有公共左因子。其次:对于S→AaAb|BbBa FIRST(AaAb)={a} FIRST(BbBa)={b}。FIRST(AaAb)∩FIRST(BbBa)=Φ。所以该文法是LL(1)文法。2、证明该文法不是SLR的。文法的LR(0)项目集规范族为。I0={S’→.S S→.AaAb S→.BbBa A→.B→.}。I1={ S’→ S.}。I2={ S→A.aAb }。I3={ S→B.bBa }。I4={ S→Aa.Ab A→.}。I5={ S→Bb.Ba B→.}。
推荐度:
导读是。一、例如:证明下列文法是LL(1)文法但不是SLR(1)文法。S->;AaAb|BbBa A->;ᵋ;(空值) B->;ᵋ;(空值)。1、首先该文法无左递归存在,没有公共左因子。其次:对于S→AaAb|BbBa FIRST(AaAb)={a} FIRST(BbBa)={b}。FIRST(AaAb)∩FIRST(BbBa)=Φ。所以该文法是LL(1)文法。2、证明该文法不是SLR的。文法的LR(0)项目集规范族为。I0={S’→.S S→.AaAb S→.BbBa A→.B→.}。I1={ S’→ S.}。I2={ S→A.aAb }。I3={ S→B.bBa }。I4={ S→Aa.Ab A→.}。I5={ S→Bb.Ba B→.}。

是。

一、例如:证明下列文法是LL(1)文法但不是SLR(1)文法

S->AaAb|BbBa A->ᵋ(空值) B->ᵋ(空值)

1、首先该文法无左递归存在,没有公共左因子。

其次:对于S→AaAb|BbBa FIRST(AaAb)={a} FIRST(BbBa)={b}

FIRST(AaAb)∩FIRST(BbBa)=Φ

所以该文法是LL(1)文法.

2、证明该文法不是SLR的。

文法的LR(0)项目集规范族为:

I0={S’→.S S→.AaAb S→.BbBa A→. B→.}

I1={ S’→ S. }

I2={ S→A.aAb }

I3={ S→B.bBa }

I4={ S→Aa.Ab A→. }

I5={ S→Bb.Ba B→. }

I6={ S→AaA.b }

I7={ S→BbB.a }

I8={ S→AaAb. }

I9={ S→BbBa. }

考察I0:

FOLLOW(A)={a,b} FOLLOW(B)={a,b} FOLLOW(A)∩FOLLOW(B)= {a,b}

产生规约-规约冲突,所以该文法不是SLR(1)文法。

二、构造LR(1)自动机(没有需要合并的状态):

没有状态存在冲突,因而是LALR(1)文法。

构造LR(0)自动机:在状态I6,由于’a’∈FOLLOW(A),因而对于SLR(1)分析而言,存在移进-归约,所以这一文法不是SLR(1)文法。

扩展资料:

它通过两种方法做到这一点。首先,它在一个移进之前先考虑输入记号以确保存在着一个恰当的 DFA 。其次,使用构造的非终结符的 Follow 集合来决定是否应执行一个归约。令人吃惊的是,先行的这个简单应用的能力强大得足以分析几乎所有的一般的语言构造。

定义:SLR(1) 分析算法(SLR(1) parsing algorithm)。令s 为当前状态(位于分析栈的顶部)。则动作可定义如下:

若状态s 包含了格式A →a.Xb 的任意项目,其中X 是一个终结符,且X 是输入串中的下一个记号,则动作将当前的输入记号移进到栈中,且被压入到栈中的新状态是包含了项目A →aX.b 的状态。

参考资料来源:百度百科-SLR(1)分析

文档

要证明一个文法是SLR(1)文法,但不是LL(1)文法,是不是要分SLR和LL来分析说明呢?

是。一、例如:证明下列文法是LL(1)文法但不是SLR(1)文法。S->;AaAb|BbBa A->;ᵋ;(空值) B->;ᵋ;(空值)。1、首先该文法无左递归存在,没有公共左因子。其次:对于S→AaAb|BbBa FIRST(AaAb)={a} FIRST(BbBa)={b}。FIRST(AaAb)∩FIRST(BbBa)=Φ。所以该文法是LL(1)文法。2、证明该文法不是SLR的。文法的LR(0)项目集规范族为。I0={S’→.S S→.AaAb S→.BbBa A→.B→.}。I1={ S’→ S.}。I2={ S→A.aAb }。I3={ S→B.bBa }。I4={ S→Aa.Ab A→.}。I5={ S→Bb.Ba B→.}。
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top