完整word版编译原理第三版课后答案Word文档格式.docx
- 文档编号:16319327
- 上传时间:2022-11-22
- 格式:DOCX
- 页数:40
- 大小:248.83KB
完整word版编译原理第三版课后答案Word文档格式.docx
《完整word版编译原理第三版课后答案Word文档格式.docx》由会员分享,可在线阅读,更多相关《完整word版编译原理第三版课后答案Word文档格式.docx(40页珍藏版)》请在冰豆网上搜索。
F)F*(Ei)
F
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:
aAb|aBb|
L4:
A|B
0A1|
1B0|A
第二章习题参考答案
P64—7
1(01)101
确定化:
1
{X}
{1,2,3}
@
{2,3}
{2,3,4}
{2,3,5}
{2,3,4,Y}
{2,3,4,}
最小化:
{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}
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}
1©
给状态编号:
2
3
最小化:
{0,1},{2,3}{0,1}a{1}{2,3}a{0,3}
{0,1},{2},{3}
{0,叽{2}
{2,3}b{3}
(b)
已经确定化了
进行最小化
{0,1}a
{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}b
{{0,1},{2,4},{3,5}}
{{0,1},{2,3,4,5}}
b{2,345}
(0|10)*◎
{X,1,Y}
{1,Y}
{2}
{1,Y}
{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
P81—1
(1)按照T,S的顺序消除左递归
(S)aF|仃)
ST
,ST|
递归子程序:
proeedureS;
begin
ifsym='
a'
orsym='
^'
thenabvaneeelseifsym='
('
thenbegin
advance;
T;
)'
thenadvanee;
elseerror;
end
elseerror
end;
proeedureT;
S;
proeedureT;
'
thenbeginadvanee;
其中:
sym:
是输入串指针IP所指的符号advanee:
是把IP调至下一个输入符号error:
是出错诊察程序
FIRST(S)={a,A,(}
FIRST(T)={a,A,(}
FIRST(T)={,,}
FOLLOW(S)={),,,#}
FOLLOW(T)={)}
FOLLOWT)={)}
预测分析表
A
(
)
J
#
Sa
SA
S(T)
TST
T,ST
是LL
(1)文法
P81-2
TE
E|
FT
T|
PF
*F|
(E)|a|bF
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|
(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((E))
nFIRST(£
)={*}n{£
}=$nFOLLOW(F'
)={*}n{(,a,b,A,+,),#}=$
nFIRST(a)nFIRST(b)nFIRST(^)=$
所以,该文法式LL
(1)文法.
⑶
+
*
E
ETE'
E'
EE
TFT
T'
TT
FPF
F'
*F
P
(E)
PA
⑷
procedureE;
b'
thenbeginT;
E'
endelseerror
procedureE'
;
+'
thenbeginadvanee;
Eend
elseifsym<
>
'
andsym<
#'
thenerrorend
procedureT;
thenbeginF;
T'
endprocedureT'
thenT
elseifsym='
*'
thenerror
procedureF;
thenbeginP;
F'
endprocedureF'
endendprocedureP;
thenadvanee
then
advanee;
E;
end;
P81-3
是,满足三个条件。
不是,对于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
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,(
(((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
“移进-归约”过程:
步骤
栈
输入串
动作
(((a,a),A,(a)),a)#
预备
#(
((a,a),A,(a)),a)#
进
#((
(a,a),A,(a)),a)#
#(((
a,a),A,(a)),a)#
4
#(((a
a),A,(a)),a)#
5
#(((S
归
6
#(((T
7
#(((T,
a),A,(a)),a)#
8
#(((T,a
八(a)),a)#
9
#(((T,S
),"
(a)),a)#
10
11
#(((T)
"
12
#((S
13
#((T
14
#((T,
A,(a)),a)#
15
#((T,A
16
#((T,S
17
18
(a)),a)#
19
#((T,(
a)),a)#
20
#((T,(a
)),a)#
21
#((T,(S
22
#((T,(T
23
#((T,(T)
),a)#
24
25
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
FIRSTVT(S)={a,A,(}
FIRSTVT(T)={,,a,A,(}
LASTVT(S)={a,A,)}
LASTVT(T)={,,a,A,)}
<
=
G6是算符文法,并且是算符优先文法
(3)优先函数
f
g
gA
g(
ga
(4)栈
#(a#(t
输入字符串
(a,(a,a))
a,(a,a))#
,(a,a))#
#(t,
(a,a))#
#(t,(
a,a))#
#(t,(a
a))#
#(t,(t
#(t,(t,
a))#
#(t,(t,a
))#
#(t,(t,s
#(t,(t)
#(t,s
#(t
#(t)
#s
success
P134-5
{0,2,5,7,10}
{1,2,5,7,8,10
}
{2,3,5,7,10}
{11}
{6}
{2,5,7,8,10}
{2,3,5,7,9,10
{2,4,5,7,8,10
SA
ss
s
3a
lb
Ab
ss
Sas
SSAA
sAAbsa
DFA
构造LR(0)项目集规范族也可以用项目集一样:
S,S
:
GO函数来计算得到。
所得到的项目集规范族与上图中的
10={S
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
3,A)={
4,a)={
4,b)={
4,S)={
4,A)={
GO(I5,
GO(I5,S)={
GO(16,
GO(I7,
A)={
b)={S)={A)={
SASAAASSSASAAASSS
AS,ab
SA,SA,ab
AS,
SA,SA,ab
SA,
SA,
}=
AS,
AS,
SA,
项目集规范族为C={I1,I
b,A
AS,
AS,b,A
I6,I7}
SA,A
SA,A
b,
a}=14
a}=I5
a}=16
b,
SA,
SA,Aa}=14
a}=I4
a}=15
a}=
a}=
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)文法。
第六章
/********************
第六章会有点难
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:
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}
***********************/
第七章
P217-1
a*(-b+c)a+b*(c+d/e)-a+b*(-c+d)
ab@c+*abcde/+*+a@bc@d+*+
(CD)
CD
(A
B)(C
D)
C@D
B)(C
DE)
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)的三元式序列:
⑹
⑺
+,a,b@,
(1),-+,c,d
*,
(2),(3)+,a,b
+,(5),c-,(4),(6)
间接三元式序列
三兀式表:
+,a,b@,
(1),-+,c,d
*,
(2),(3)+,
(1),c
-,(4),(5)
间接码表:
⑸
⑹四元式序列:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整 word 编译 原理 第三 课后 答案