第一范文网 - 专业文章范例文档资料分享平台

编译原理复习题 - 给学生(2014)

来源:用户分享 时间:2025/5/24 20:24:47 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

.. .. ..

13.文法

S ? A a | b A c | d c | b d a A ? d

构造识别活前缀的DFA。请根据这个DFA来判断该文法是不是SLR(1)文法并说明理由。

S’ ? .S S ? .A a S ? .b A c S ? .d c S ? .b d a A ? .d I0 d S ? d .c A ? d . I4 S A S’ ? S . I1 S ? A .a I2 S ? b .A c S ? b .d a A ? .d I3 S ? d c . I8 a S ? A a . I5 S ? b A .c I6 S ? b d .a A ? d . I7 c S ? b A c . I9 S ? b d a . I10 b A d a c 【解】

Follow(S)={#} Follow(A)={a,c}

I4存在冲突且Follow(A)∩{c}={ c} I7存在冲突且Follow(A)∩{a}={ a} 所以不是SLR(1)文法

14.设有文法G[S]:

S→S*S|S+S|(S)|i

该文法是否为二义文法,并说明理由?

参考材料

.. .. ..

【解】该文法是二义文法,因为该文法存在句子i*i+i,该句子有两棵不同的语法树如图所示。

S S i (1) S S S i + S i S i S * + S i (2) * S i

15.构造下面文法的LL(1)分析表。 G[D]: D ? TL

T ? int | real L ? id R R ? , id R | ?

【解】FIRST(T)={ int real } FOLLOW(T)={ id } FIRST(L)={ id } FOLLOW(L)={ #} FIRST(R)={ , ?} FOLLOW(R)={ #}

FIRST(D)={ int real } FOLLOW(D)={#} 因为FIRST(int)∩FIRST(real)=Φ FIRST(, id R)∩FOLLOW(R)=Φ

所以是LL(1)文法,LL(1)分析表如下:

D T L R

16.给定文法S→aS|bS|a,下面是拓广文法和识别该文法所产生的活前缀的DFA。判断该文法是否是

参考材料

int D ? TL T ? int real D ? TL T ? real id L ? id R , R ? , id R # R ? ? .. .. ..

SLR(1)文法:如果是构造其SLR(1)分析表,如果不是请说明理由。

(1)将文法G(S)拓广为G(S’):

(0)S’→S (1)S→aS (2)S→bS (3)S→a

(2)识别该文法所产生的活前缀的DFA如图1所示。

图1

【解】注意到状态I1存在“移进-归纳”冲突,计算S的FOLLOW集合: FOLLOW(S)={#} {a}∩{b}∩FOLLOW(R)=Φ

可以采用SLR冲突消解法,得到如下的SLR分析表。

从分析表可以看出,表中没有冲突项,所以该文法是SLR(1)文法。

参考材料

.. .. ..

表1 SLR分析表

状态 0 1 2 3 4 5

17.证明下面文法S→AaAb|BbBa A→ε B→ε,是LL(1)文法,但不是SLR(1)文法。 证明:

(1)first(AaAb)={a} first(BbBb)={b} ,有first(AaAb)∩first(BbBb)=Φ 所以根据LL(1)文法的定义,该文法是LL(1)文法。

(2)为了构造识别活前缀的DFA,初态集包含如下四个项目:S→.AaAb S→.BbBa A→. B→. 但该项目中有两个可归约项目:A→. B→.,产生归约-归约冲突,而follow(A)={a,b},follow(B)={a,b},有follow(A)∩follow(B)≠Φ,所以使用向前看一个终结符的方法不能解决此冲突,所以该文法不是SLR(1)文法。 18.已知文法G(S):

S→S*aP| aP| *aP P→+aP| +a

(1) 将文法G(S)改写为LL(1)文法G’(S);

参考材料

ACTION a S1 S1 S1 b S2 S2 S2 # r3 acc r1 r2 GOTO S 3 4 5

搜索更多关于: 编译原理复习题 - 给学生(2014) 的文档
编译原理复习题 - 给学生(2014).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c4ecwh1i3ye5a66i6tmib55397303xo0106d_8.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top