计算机编译原理课后习题及答案详细解析(6)

2019-05-27 17:23

i + * ( ) # ≯ ≯ ≯ ≯ ≮ ≮ ≮ ≯ ≯ ≯ ≮ ≮ ≯ ≯ ≯ ≯ ≮ ≮ ≮ ≮ ≮ ≮ ≮ ≮ ≯ ≯ ≯ ≯ ≡ 因为该文法是OP,同时任意两个终结符的优先关系唯一,所以该文法为OPG。 (3)(+(i(的分析过程 步栈 优先关当前符剩余输入串 移进或归约 骤 系 号 1 # #≮( ( (+(i(# 移进 2 #( (≯+ + (i(# 归约 3 #F #≮+ + (i(# 移进 4 #F+ +≮( ( i(# 移进 5 #F+( (≯i i (# 归约 6 #F+F +≯i i (# 归约 7 #F #≮i i (# 移进 8 #Fi i≮( ( # 移进 9 #Fi( (≯# # 归约 10 #FiF i≯# # 归约 11 #F #≡# # 接受 5、试为下列各文法建立算符优先关系表。 E->E and T|T T->T or F|F F->not F|N N->(E)|true[答案]

算符优先关系表如下:

true false not and or ( ) # true ≯ ≯ ≯ ≯ false ≯ ≯ ≯ ≯ not ≮ ≮ ≮ ≯ ≯ ≮ ≯ ≯ and ≮ ≮ ≮ ≯ ≯ ≮ ≯ ≯ or ≮ ≮ ≮ ≮ ≯ ≮ ≯ ≯ ( ≮ ≮ ≮ ≮ ≮ ≮ ≡ ) ≯ ≯ ≯ ≯ # ≮ ≮ ≮ ≮ ≮ ≮

1、已知文法 :A->aAd| aAb|ε ,判断该文法是否SLR(1)文法,若是构造相应分析表,并对输入串ab#给出分析过程。

[答案] (1)拓广文法

(0)S->A (1) A->aAd (2)A-> aAb (3)A->ε (1)构造识别活前缀的DFA

FOLLOW(A)={d,b,#}

对于状态I0:FOLLOW(A)∩{a}=Ф 对于状态I1:FOLLOW(A)∩{a}=Ф

因为,在DFA中无冲突的现象,所以该文法是SLR(1)文法。 (3)SLR(1)分析表

(4)串ab#的分析过程

步骤 1 2 3 4 5 2、设文法G为 S ? A A ? BA | ε(1)证明它是LR(1)文法;

状态栈 0 02 023 0235 01 符号栈 # #a #aA #aAb #A B ? aB | b

(2)构造它的LR(1)分析表;

(3)给出输入符号串abab的分析过程。

[答案]

(1)拓广文法G’: (0) S' ? S (1) S ? A (2) A ? BA (3) A ?εFIRST(A) = {ε, a, b} FIRST(B) = {a, b} 构造的DFA如下:

(4) B ? aB (

由项目集规范族看出,不存在冲突动作。 ∴该文法是LR(1)文法。

(2)

状态 0 1 2 3 4 5 6 7 Action a S4 S4 S4 r5 r4 B S5 S5 S5 r5 r4 # r3 acc r1 r3 r5 r2 r4 S 1 Goto A 2 6 B 3 3 7 (3)输入串abab的分析过程为: 步骤 状态栈 符号栈 (1) 0 # (2) 04 #a (3) 045 #ab (4) 047 (5) 03 (6) 034 (7) 0345 (8) 0347 (9) 033 (10) 0 336 (11) 0 36 (12) 0 2 (13) 0 1 #aB #B #Ba #Bab #BaB #BB #BBA #BA # A #S 当前字符 剩余字符串 动作 a bab# 移进 b ab# 移进 a b# B?b 归约a a b # # # # # # # b# B?aB 归约b# 移进 # 移进 归约 B?b 归约 B?aB 归约 A?ε 归约 A?BA 归约 A?BA 归约 S?A acc

3、考虑文法S?A S | b A ? S A | a (1)构造文法的LR(0)项目集规范族及相应的DFA。

(2)如果把每一个LR(0)项目看成一个状态,并从每一个形如B ? α·Xβ的状态出发画一条标记为X的箭弧刀状态B ? αX·

(3)构造文法的SLR分析表。

(4)对于输入串bab,给出SLR分析器所作出的动作。 (5)构造文法的LR(1)分析表和LALR分析表。 [答案]

(1)令拓广文法G’为 (0)S’ ? S (1)S ? A S

(2)S ? b (3)A ? S A (4)A ? a

其LR(0)项目集规范族及识别该文法活前缀的DFA如下图所示: FOLLOW(S)={#,a,b} FOLLOW(A)={a,b}

(2)显然,对所得的NFA求ε闭包,即得上面的LR(0)项目集,即DFA中的状态。 故此NFA与(a)中DFA是等价的。 (3)文法的SLR分析表如下:

action A S4 S4 S4 r2 r4 S4/ r3 S4 S4 / r1 b S3 S3 S3 r2 r4 S3/r3 S3 S3 / r1 # acc r2 r4 R1 S 1 6 7 7 6 6 goto A 2 5 2 2 5 5 状态 0 1 2 3 4 5 6 7


计算机编译原理课后习题及答案详细解析(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:微生物大纲

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: