完整word版编译原理第三版课后答案.docx
- 文档编号:3413847
- 上传时间:2022-11-22
- 格式:DOCX
- 页数:40
- 大小:248.83KB
完整word版编译原理第三版课后答案.docx
《完整word版编译原理第三版课后答案.docx》由会员分享,可在线阅读,更多相关《完整word版编译原理第三版课后答案.docx(40页珍藏版)》请在冰豆网上搜索。
完整word版编译原理第三版课后答案
P36-6
L(G1)是0~9组成的数字串
编译
原理课后题答案
第二章
01DD
012D
0127
N
ND
DD
3D
34
N
ND
NDD
DDD5DD
56D
568
最右推导:
N
ND
N7
ND7
N27
ND27
N127
N
ND
N4
D4
34
N
ND
N8
ND8
N68
D68
568
N
ND
NDD
NDDD
D127
⑵
最左推导:
DDDD0DDD
0127
P36-7
G(S)
O
1|3|5|7|9
2|4|6|8|O0|NO|AO
AD|N
P36-8
文法:
TET|EFT*F|T/F(E)|i
最左推导:
T
T*
i*(i
T)
i*(iF)
i*(i
Ti
i*(E)
i)
T*Fi
F*F
i
i*(ET)i*(T
i*F
T)
ii*i
i*(FT)
最右推导:
F*(ET)F*(E
F)F*(Ei)
T
F
i
ETF*TF*FF*(E)
i+i+i
i-i-i
i+i*i
*****************/
P36-9
句子iiiei
有两个语法树:
•巳
P36-10
/**************
STS|T
(S)|()
***************/
P36-11
/***************
L1:
AC
aAb|ab
cC|
L2:
AB
aA|bBc|bc
L3:
AB
aAb|aBb|
L4:
A|B
0A1|
1B0|A
***************/
第二章习题参考答案
P64—7
1(01)101
确定化:
0
1
{X}
{1,2,3}
@
{1,2,3}
{2,3}
{2,3,4}
{2,3}
{2,3}
{2,3,4}
{2,3,4}
{2,3,5}
{2,3,4}
{2,3,5}
{2,3}
{2,3,4,Y}
{2,3,4,Y}
{2,3,5}
{2,3,4,}
0
1
最小化:
{0,1,2,3,4,5},{6}
{0,1,2,3,4耳0{1,3待
{0,1,2,3,4},{0},{6}
{0,1,2,34}0{1,3,5}
{0,1,23,{4},{5U6}
{0,1,23。
{1,3}{0,1,2,3}1{1,2,4}
{0,1},{23{4},{5UQ
{0,1}0{1}
{0,1,2,3,4,f}1{1,2,4©
0,1}1{1,2}
{2,3}0{3{231{4}
{0},{1},{2,3},{4},{5},{6}
1
1
P64—8
(1)
(1|0)*01
(1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)*(0|5)|(0|5)
01(0|101)|10(0|101)
P64-12
确定化:
a
b
{0}
{0,1}
{1}
{0,1}
{0,1}
{1}
{1}
{0}
1©
给状态编号:
a
b
0
1
2
1
1
2
2
0
3
3
3
3
a
最小化:
{0,1},{2,3}{0,1}a{1}{2,3}a{0,3}
{0,1},{2},{3}
{0,叽{2}
{2,3}b{3}
(b)
b
a
a
a
0
已经确定化了
最小化:
进行最小化
{0,1}a
{1}
{0,1}b
{2,4}
{2,3,4,5}a{1,3,0,5}
{2,345}
{2,4}a
{1,0}
{2,4}b
{3,5}
{3,5}a
{3,5}
{3,5}b
{2,4}
{{0,1},{2,4},{3,5}}
{0,1}a
{1}
{0,1}b
{2,4}
{2,4}a
{1,0}
{2,4}b
{3,5}
{3,5}a
{3,5}
{3,5}b
{2,4}
b
b
a
{{0,1},{2,3,4,5}}
b
b{2,345}
0
a
(0|10)*◎
0
1
确定化:
0
1
{X,1,Y}
{1,Y}
{2}
{1,Y}
{1,Y}
{2}
{2}
{1,Y}
给状态编号:
0
1
0
1
2
1
1
2
2
1
3
3
3
3
最小化:
{0,1},{2,3}
{0,1}i{2}
{2,3}i{3}
{O,1}o{1}
{2,3}0{1,3}
{0,1},{2},{3}
G
S
T
T
P81—1
(1)按照T,S的顺序消除左递归
(S)aF|仃)
ST
,ST|
递归子程序:
proeedureS;
begin
ifsym='a'orsym='^'
thenabvaneeelseifsym='('thenbegin
advance;T;
ifsym=')'thenadvanee;elseerror;
end
elseerror
end;
proeedureT;
begin
S;T
end;
proeedureT;
begin
ifsym=','
thenbeginadvanee;
S;T
end
end;
其中:
sym:
是输入串指针IP所指的符号advanee:
是把IP调至下一个输入符号error:
是出错诊察程序
⑵
FIRST(S)={a,A,(}
FIRST(T)={a,A,(}
FIRST(T)={,,}
FOLLOW(S)={),,,#}
FOLLOW(T)={)}
FOLLOWT)={)}
预测分析表
a
A
(
)
J
#
S
Sa
SA
S(T)
T
TST
TST
TST
T
T
T,ST
是LL
(1)文法
P81-2
文法:
TE
E|
FT
T|
PF
*F|
(E)|a|bF
(1)
FIRST(E)={(,a,b,A}FIRST(E')={+,£}
FIRST(T)={(,a,b,A}
FIRST(T')={(,a,b,A,£}
FIRST(F)={(,a,b,A}FIRST(F')={*,£}
FIRST(P)={(,a,b,A}FOLLOW(E)={#,)}FOLLOW(E')={#,)}FOLLOW(T)={+,),#}FOLLOW(T')={+,),#}FOLLOW(F)={(,a,b,A,+,),#}FOLLOW(F')={(,a,b,A,+,),#}FOLLOW(P)={*,(,a,b,A,+,),#}⑵
考虑下列产生式:
E|
T|
*F|
(E)F|a|b
FIRST(+E)nFIRST(£)={+}n{£}=$
FIRST(+E)nFOLLOW(E')={+}n{#,)}=$
FIRST(T)nFIRST(£)={(,a,b,^}n{£}=$FIRST(T)nFOLLOW(T')={(,a,b,A}n{+,),#}=$
FIRST(*F')
FIRST(*F')
FIRST((E))
nFIRST(£)={*}n{£}=$nFOLLOW(F')={*}n{(,a,b,A,+,),#}=$
nFIRST(a)nFIRST(b)nFIRST(^)=$
所以,该文法式LL
(1)文法.
⑶
+
*
(
)
a
b
A
#
E
ETE'
ETE'
ETE'
ETE'
E'
EE
E
E
T
TFT
TFT
TFT
TFT
T'
T
TT
T
TT
TT
TT
T
F
F
PF
F
PF
F
PF
FPF
F'
F
F
*F
F
F
F
F
F
F
P
P
(E)
P
a
P
b
PA
⑷
procedureE;
begin
ifsym='('orsym='a'orsym='b'orsym='^'thenbeginT;E'endelseerror
end
procedureE';
begin
ifsym='+'
thenbeginadvanee;Eend
elseifsym<>')'andsym<>'#'thenerrorend
procedureT;
begin
ifsym='('orsym='a'orsym='b'orsym='^'thenbeginF;T'endelseerror
endprocedureT';
begin
ifsym='('orsym='a'orsym='b'orsym='^'thenT
elseifsym='*'thenerror
end
procedureF;
begin
ifsym='('orsym='a'orsym='b'orsym='^'thenbeginP;F'endelseerror
endprocedureF';
begin
ifsym='*'
thenbeginadvanee;F'endendprocedureP;
begin
ifsym='a'orsym='b'orsym='^'thenadvanee
elseifsym='('then
begin
advanee;E;
ifsym=')'thenadvanee
elseerror
end
elseerror
end;
P81-3
/***************
(1)
⑵
⑶
⑷
是,满足三个条件。
不是,对于A不满足条件3。
不是,A、B均不满足条件3。
是,满足三个条件。
***************/
P133-1
EETE短语:
E+T*F,T*F,直接短语:
T*F句柄:
T*F
T*F
P133-2
文法:
第五章
Sa|A|(T)
TT,S|S
(1)
最左推导:
S(T)(T,S)
S(T,S)(S,S)
(((T,S),S,S)),S)(((a,a),A,S),S)(((a,a),A,(a)),a)
最右推导:
(T,(T))(T,(T,S))(T,(T,a))
(T)(T,S)
(S,(a,a))(a,(a,a))
(T,S)(T,a)(S,a)((T),a)((T,S),a)
(T,(S,a))
(T,(a,a))
((T,(T)),a)
((T,(S)),a)(((T),A,(a)),a)
((T,(a)),a)((T,S,(a)),a)((T-,(a)),a)((S",(a)),a)
(((T,S),A,(a)),a)(((T,a),A,(a)),a)(((S,a),-,(a)),a)(((a,a),-,(a)),a)
⑵
(((
a,a),A,(a)),a)
((T,(
((T,(
((T,(
(((Sm),A,(a)),a)(((T,a)A(a)),a)(((LS),A,(a)),a)(((TL,^,(a)),a)((S,A,(a)),a)((T,A,(a)),a)((LS_,(a)),a)a)),a)
S)),a)
T)),a)((TS_),a)
((IL,a)
(S,a)
(TS)
(TL
S
“移进-归约”过程:
步骤
栈
输入串
动作
0
#
(((a,a),A,(a)),a)#
预备
1
#(
((a,a),A,(a)),a)#
进
2
#((
(a,a),A,(a)),a)#
进
3
#(((
a,a),A,(a)),a)#
进
4
#(((a
a),A,(a)),a)#
进
5
#(((S
a),A,(a)),a)#
归
6
#(((T
a),A,(a)),a)#
归
7
#(((T,
a),A,(a)),a)#
进
8
#(((T,a
八(a)),a)#
进
9
#(((T,S
),",(a)),a)#
归
10
#(((T
),",(a)),a)#
归
11
#(((T)
",(a)),a)#
进
12
#((S
",(a)),a)#
归
13
#((T
",(a)),a)#
归
14
#((T,
A,(a)),a)#
进
15
#((T,A
(a)),a)#
进
16
#((T,S
(a)),a)#
归
17
#((T
(a)),a)#
归
18
#((T,
(a)),a)#
进
19
#((T,(
a)),a)#
进
20
#((T,(a
)),a)#
进
21
#((T,(S
)),a)#
归
22
#((T,(T
)),a)#
归
23
#((T,(T)
),a)#
进
24
#((T,S
),a)#
归
25
#((T
),a)#
归
26#((T)
a)#
27#(S,a)#
归
28#(T,a)#
归
29#(T,
a)#
进
30#(T,a
)#
进
31#(T,S
)#
归
32#(T)#
归
33#(T)
#
进
34#S#
P133-3
(1)
归
FIRSTVT(S)={a,A,(}
FIRSTVT(T)={,,a,A,(}
LASTVT(S)={a,A,)}
LASTVT(T)={,,a,A,)}
⑵
a
A
(
)
J
a
>
>
A
>
>
(
<
<
<
=
<
)
>
>
J
<
<
<
>
>
G6是算符文法,并且是算符优先文法
(3)优先函数
a
A
(
)
J
f
4
4
2
4
4
g
5
5
5
2
3
f
gA
)
g(
ga
(4)栈
#
#(
#(a#(t
输入字符串
(a,(a,a))
a,(a,a))#
,(a,a))#
,(a,a))#
动作
预备
进
进
归
#(t,
(a,a))#
进
#(t,(
a,a))#
进
#(t,(a
a))#
进
#(t,(t
a))#
归
#(t,(t,
a))#
进
#(t,(t,a
))#
进
#(t,(t,s
))#
归
#(t,(t
))#
#(t,(t)
)#
进
#(t,s
)#
归
#(t
)#
归
#(t)
#
进
#s
#
归
success
P134-5
确定化:
S
A
a
b
{0,2,5,7,10}
{1,2,5,7,8,10
}
{2,3,5,7,10}
{11}
{6}
{1,2,5,7,8,10
{2,5,7,8,10}
{2,3,5,7,9,10
{11}
{6}
}
}
{2,3,5,7,10}
{2,4,5,7,8,10
}
{2,3,5,7,10}
{11}
{6}
{2,5,7,8,10}
{2,5,7,8,10}
{2,3,5,7,9,10
}
{11}
{6}
{2,3,5,7,9,10
}
{2,4,5,7,8,10
}
{2,3,5,7,10}
{11}
{6}
{2,4,5,7,8,10
}
{2,5,7,8,10}
{2,3,5,7,9,10
}
{11}
{6}
{11}
{6}
SA
ss
s
3a
A
lb
s
Ab
A
ss
Sas
SSAA
sAAbsa
DFA
构造LR(0)项目集规范族也可以用项目集一样:
S,S
:
A
S
GO函数来计算得到。
所得到的项目集规范族与上图中的
10={S
GO(I0,
GO(I0,
GO(I0,
a)={
b)={
S)={S
AS,S
a}=Ii
b}=12
S,A
b,ASA,Aa}
SA,ASA,Aa,SAS,Sb}=13
GO(I0,A)={
GO(13,a)={
GO(13,b)={
GO(13,S)={
GO(I
GO(I
GO(I
GO(I
GO(I
3,A)={
4,a)={
4,b)={
4,S)={
4,A)={
a)={
b)={
GO(I5,
GO(I5,
GO(I5,S)={
GO(I5,
GO(16,
GO(16,
GO(16,
GO(16,
GO(I7,
GO(I7,
GO(I7,
GO(I7,
A)={
a)={
b)={S)={A)={
a)={
b)={S)={A)={
SASAAASSSASAAASSS
A
S
A
A
AS,ab
SA,SA,ab
AS,
AS,ab
SA,SA,ab
AS,
AS,ab
SA,
SA,
S
}=
}=
S
}=
}=
A
S
}=
}=
S
S
}=
}=
A
S
}=
}=
S
S
AS,
11
12
AS,
AS,
11
12
SA,
AS,
11
12
AS,
AS,
11
12
SA,
AS,
11
12
AS,
AS,
项目集规范族为C={I1,I
b,A
AS,
AS,b,A
b,A
AS,
AS,b,A
b,A
AS,S
I6,I7}
SA,A
SA,A
b,
a}=14
a}=I5
SA,A
a}=16
b,
SA,
SA,
b,
b,
SA,
SA,
b,
SA,Aa}=14
a}=I5
SA,A
SA,A
a}=I4
a}=15
SA,A
a}=
a}=
a}=
a}=
I7
I7
⑶不是
状态
状态
状态
状态
3,
3:
6:
7:
SLR文法
6,7有移进归约冲突
FOLLOW')={#}不包含a,b
FOLLOW(S)={#,a,b}包含a,b,;
移进归约冲突无法消解
FOLLOW(A)={a,b}包含a,b;移进归约冲突消解
所以不是SLR文法。
(4)构造例如LR
(1)项目集规范族
见下图:
对于状态5,因为包含项目[AASa/b],所以遇到搜索符号a或b时,应该用
AS
归约。
又因为状态5包含项目[Aaa/b],所以遇至U搜索符号a时,应该移进。
因此存在“移进-归约”矛盾,所以这个文法不是LR
(1)文法。
S
第六章
/********************
第六章会有点难
(1)
E
P164—5
E1+T{if(E1.type=int)and(T.type=int)thenE.type:
=intelseE.type:
=real}
T{E.type:
=T.type}
num.num{T.type:
=real}
num
{T.type:
=int}
P164-7
L
L1B
{S.val:
=L.val}
{L.val:
=2*L1.val+B.val;
L.length:
=L1.length+1}{L.val:
=B.c;
L.length:
=1}
{B.c:
=0}
{B.c:
=1}
***********************/
第七章
P217-1
a*(-b+c)a+b*(c+d/e)-a+b*(-c+d)
ab@c+*abcde/+*+a@bc@d+*+
A
(CD)
A
CD
(A
B)(C
D)
AB
C@D
(A
B)(C
DE)
AB
CD@E
if(x+y)*z=0then
(a+b)
tcelseatbtcxy+z*0=ab+c
或xy+z*0=P1jezab+c
tP2jumpabctt
tabcttY
P217-3
-(a+b)*(c+d)-(a+b+c)的三元式序列:
(1)
⑵
⑶
⑷
⑹
⑺
+,a,b@,
(1),-+,c,d
*,
(2),(3)+,a,b
+,(5),c-,(4),(6)
间接三元式序列
三兀式表:
(1)
⑵
⑶
⑷
⑹
+,a,b@,
(1),-+,c,d
*,
(2),(3)+,
(1),c
-,(4),(5)
间接码表:
(1)
⑵
⑶
⑷
(1)
⑸
⑹四元式序列:
(1)
⑵
⑶
⑷
⑹
⑺
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整 word 编译 原理 第三 课后 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)