蒋立源编译原理第三版第四章习题与答案2.docx
- 文档编号:1439652
- 上传时间:2022-10-22
- 格式:DOCX
- 页数:22
- 大小:433.45KB
蒋立源编译原理第三版第四章习题与答案2.docx
《蒋立源编译原理第三版第四章习题与答案2.docx》由会员分享,可在线阅读,更多相关《蒋立源编译原理第三版第四章习题与答案2.docx(22页珍藏版)》请在冰豆网上搜索。
蒋立源编译原理第三版第四章习题与答案2
第五章习题
5-1设有文法G[S]:
S→A/A→aA∣AS∣/
(1)找出部分符号序偶间的简单优先关系。
(2)验证G[S]不是简单优先文法。
5-2对于算符文法G[S]:
S→EE→E-T∣TT→T*F∣FF→-P∣PP→(E)∣i
(1)找出部分终结符号序偶间的算符优先关系。
(2)验证G[S]不是算符优先文法。
5-3设有文法G′[E]:
E→E1E1→E1+T1|T1T1→TT→T*F|FF→(E)|i
其相应的简单优先矩阵如题图5-3所示,试给出对符号串(i+i)进行简单优先分析的过程。
题图5-3文法G′[E]的简单优先矩阵
5-4设有文法G[E]:
E→E+T|T
T→T*F|F
F→(E)|i
其相应的算符优先矩阵如题图5-4所示。
试给出对符号串(i+i)进行算符优先分析的过程。
(
i
*
+
)
#
(
i
*
+
)
#
题图5-4文法G[E]的算符优先矩阵
5-5对于下列的文法,试分别构造识别其全部可归前缀的DFA和LR(0)分析表,并判断哪些是LR(0)文法。
(1)S→aSb∣aSc∣ab
(2)S→aSSb∣aSSS∣c
(3)S→AA→Ab∣a
5-6下列文法是否是SLR
(1)文法?
若是,构造相应的SLR
(1)分析表,若不是,则阐明其理由。
(1)S→Sab∣bRR→S∣a
(2)S→aSAB∣BAA→aA∣BB→b
(3)S→aA∣bBA→cAd∣εB→cBdd∣ε
5-7对如下的文法分别构造LR(0)及SLR
(1)分析表,并比较两者的异同。
S→cAd∣bA→ASc∣a
5-8对于文法G[S]:
S→AA→BA∣εB→aB∣b
(1)构造LR
(1)分析表;
(2)给出用LR
(1)分析表对输入符号串abab的分析过程。
5-9对于如下的文法,构造LR
(1)项目集族,并判断它们是否为LR
(1)文法。
(1)S→AA→AB∣εB→aB∣b
(2)S→aSa∣a
第4章习题答案2
5-1解:
(1)由文法的产生式和如答案图5-1(a)所示的句型A//a/的语法树,可得G中的部分优先关系如答案图5-1(b)所示。
(2)由答案图5-1(b)可知,在符号A和/之间,即存在等于关系,又存在低于关系,故文法G[S]不是简单优先文法。
5-2解:
(1)由文法G[S]的产生式可直接看出:
()
此外,再考察句型-P--(E)和i*(T*F)的语法树(见答案图5-2(a)及(b))。
由答案图5-2(a)可得:
--,--,-(
由答案图5-2(b)可得:
i*,*(,(*,*)
(2)由答案图5-2(a)可知,在终结符号-和-之间,存在两种算符优先关系:
--,--
故文法G[S]不是算符优先文法。
5-3解:
对符号串(i+i)进行简单优先分析的过程如答案表5-3所示。
因为分析成功,所以符号串(i+i)是文法G′[E]的合法句子。
答案表5-3符号串(i+i)的简单优先分析过程
步骤
分析栈
关系
当前
符号
余留
输入串
句柄
所用
产生式
0
#
低于
(
i+i)#
1
#(
低于
i
+i)#
2
#(i
优于
+
i)#
i
F→i
3
#(F
优于
+
i)#
F
T→F
4
#(T
优于
+
i)#
T
T1→T
5
#(T1
优于
+
i)#
T1
E1→T1
6
#(E1
等于
+
i)#
7
#(E1+
低于
i
)#
8
#(E1+i
优于
)
#
i
F→i
9
#(E1+F
优于
)
#
F
T→F
10
#(E1+T
优于
)
#
T
T1→T
11
#(E1+T1
优于
)
#
E1+T1
E1→E1+T1
12
#(E1
优于
)
#
E1
E→E1
13
#(E
等于
)
#
14
#(E)
优于
#
(E)
F→(E)
15
#F
优于
#
F
T→F
16
#T
优于
#
T
T1→T
17
#T1
优于
#
T1
E1→T1
18
#E1
优于
#
E1
E→E1
19
#E
优于
#
分析
成功
5-4解:
对符号串(i+i)进行算符优先分析的过程如答案表5-4所示。
因为分析成功,所以符号串(i+i)是文法G[E]的合法句子。
句子(i+i)及其分析过程中所得句型的语法树如答案图5-4所示。
答案表5-4符号串(i+i)的算符优先分析过程
步骤
分析栈
当前栈顶
终结符号
优先
关系
当前输
入符号
余留
输入串
最左
素短语
0
#
#
(
i+i)#
1
#(
(
i
+i)#
2
#(i
i
+
i)#
i
3
#(F
(
+
i)#
4
#(F+
+
i
)#
5
#(F+i
i
)
#
i
6
#(F+F
+
)
#
F+F
7
#(E
(
)
#
8
#(E)
)
#
(E)
9
#F
#
#
分析
成功
5-5解:
(1)在文法G[S]中引入一个新的开始符号S′,且将S′→S作为第0个产生式添加到文法G中,从而得到G的拓广文法G′[S′]:
0.S′→S2.S→aSc
1.S→aSb3.S→ab
识别文法G[S]全部可归前缀的DFA如答案图5-5-
(1)所示。
因为文法G[S]的每个LR(0)项目集中都不含冲突项目,所以文法G[S]是LR(0)文法,故可构造出不含冲突动作的LR(0)分析表如答案表5-5-
(1)所示。
答案表5-5-
(1)文法G[S]的LR(0)分析表
状态
ACTION
GOTO
a
b
c
#
S
0
1
2
3
4
5
6
s2
s2
r3
r1
r2
s4
s5
r3
r1
r2
s6
r3
r1
r2
acc
r3
r1
r2
1
3
(2)在文法G[S]中引入一个新的开始符号S′,且将S′→S作为第0个产生式添加到文法G中,从而得到G的拓广文法G′[S′]:
0.S′→S2.S→aSSS
1.S→aSSb3.S→c
识别文法G[S]全部可归前缀的DFA如答案图5-5-
(2)所示。
因为文法G[S]的每个LR(0)项目集中都不含冲突项目,所以文法G[S]是LR(0)文法,故可构造出不含冲突动作的LR(0)分析表如答案表5-5-
(2)所示。
答案表5-5-
(2)文法G[S]的LR(0)分析表
状态
ACTION
GOTO
a
b
c
#
S
0
1
2
3
4
5
6
7
s2
s2
r3
s2
s2
r1
r2
r3
r1
r2
s3
s3
r3
s3
s3
r1
r2
acc
r3
r1
r2
1
4
5
7
(3)在文法G[S]中引入一个新的开始符号S′,且将S′→S作为第0个产生式添加到文法G中,从而得到G的拓广文法G′[S′]:
0.S′→S2.A→Ab
1.S→A3.A→a
识别文法G[S]全部可归前缀的DFA如答案图5-5-(3)所示。
因为在LR(0)项目集I2中含有移进-归约冲突项目,所以文法G[S]不是LR(0)文法,故构造出的LR(0)分析表中含有冲突动作。
文法G[S]的LR(0)分析表如答案表5-5-(3)所示。
答案表5-5-(3)文法G[S]的LR(0)分析表
状态
ACTION
GOTO
a
b
#
S
A
0
1
2
3
4
s3
r1
r3
r2
s4,r1
r3
r2
acc
r1
r3
r2
1
2
5-6解:
(1)在文法G[S]中引入一个新的开始符号S′,且将S′→S作为第0个产生式添加到文法G中,从而得到G的拓广文法G′[S′]:
0.S′→S3.R→S
1.S→Sab4.R→a
2.S→bR
识别文法G[S]全部可归前缀的DFA如答案图5-6-
(1)所示。
由答案图5-6-
(1)可知,在项目集I1和I4中都存在“移进-归约”冲突。
在项目集I4={R→S·,S→S·ab}中,由于FOLLOR(R)={a},FOLLOR(R)∩{a}={a}≠,所以其项目集的“移进-归约”冲突不可能通过SLR
(1)规则得到解决,从而该文法不是SLR
(1)文法。
(2)在文法G[S]中引入一个新的开始符号S′,且将S′→S作为第0个产生式添加到文法G中,从而得到G的拓广文法G′[S′]:
0.S′→S3.A→aA
1.S→aSAB4.A→B
2.S→BA5.B→b
识别文法G[S]全部可归前缀的DFA如答案图5-6-
(2)所示。
答案图5-6-
(2)识别G[S]全部可归前缀的DFA
因为文法G[S]的每个LR(0)项目集中都不含冲突项目,所以文法G[S]是LR(0)文法,故也是SLR
(1)文法。
因为FOLLOW(S)={a,b,#},FOLLOW(A)={a,b,#},FOLLOW(B)={a,b,#},所以文法G[S]的SLR
(1)分析表如答案表5-6-
(2)所示。
答案表5-6-
(2)文法G[S]的SLR
(1)分析表
状态
ACTION
GOTO
a
b
#
S
A
B
0
1
2
3
4
5
6
7
8
9
10
11
s2
s2
s7
r5
s7
r2
s7
r4
r1
r3
s4
s4
s4
r5
s4
r2
s4
r4
s4
r1
r3
acc
r5
r2
r4
r1
r3
1
5
6
9
11
3
3
8
8
8
10
(3)在文法G[S]中引入一个新的开始符号S′,且将S′→S作为第0个产生式添加到文法G中,从而得到G的拓广文法G′[S′]:
0.S′→S4.A→ε
1.S→aA5.B→cBdd
2.S→bB6.B→ε
3.A→cAd
识别文法G[S]全部可归前缀的DFA如答案图5-6-(3)所示。
由答案图5-6-(3)可知,在项目集I2,I3,I5和I9中都存在“移进-归约”冲突。
因为在项目集I2和I5中,由于FOLLOR(A)={d,#},FOLLOR(A)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 蒋立源 编译 原理 第三 第四 习题 答案