云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 编译原理复习题 - 给学生(2014)

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

  • 62 次阅读
  • 3 次下载
  • 2025/5/1 12:03:46

.. .. ..

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) 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

.. .. .. 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 ?

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com