编译原理课后答案第三版.docx
- 文档编号:8027970
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:15
- 大小:127.88KB
编译原理课后答案第三版.docx
《编译原理课后答案第三版.docx》由会员分享,可在线阅读,更多相关《编译原理课后答案第三版.docx(15页珍藏版)》请在冰豆网上搜索。
编译原理课后答案第三版
三
12将图a确定化最小化
a,b
a
a
图a
解:
引入新的初态结点X和终态结点Y(X,Y不属于源非确定集)得图如下:
a
εεεε
a,ba
列出状态转换矩阵如下所示:
ab
A{X,0,Y}{0,1,Y}{1}
B{0,1,Y}{0,1,Y}{1}
C{1}{0,Y}ø
D{0,Y}{0,1,Y}{1}
DFA如下:
a
ab
bb
ba
最少化:
终态{A,B,D}a={A,B}∈{A,B,D}
{A,B,D}b={B,}∈{A,B,D}
∴最少化为:
a
b
a
(b)将图b最少化
b
ba
b
a
a
a
b
ba
ab
图b
解:
终态{0,1}a∈{0,1}
{0,1}b={2,4}∈{2,3,4,5}
∴{0,1}不能再分
非终态{2,3,4,5}a={0,1,3,5}
{2,4}a={0,1}{2,4}b={3,5}
{3,5}a={3,5}{3,5}b={2,4}
0代表{0,1},2代表{2,4},3代表{3,5}得最少化为:
aba
bb
a
14.构造一个DFA,它接收∑={0,1}上所有满足如下条件的字符串:
每个1都有0直接跟在右边。
解:
构造正规式为:
(0|10)*
则可构造如下NFA:
ε
0
εε
εε
ε10
ε
ε
列出状态转换矩阵如下:
01
A{q0,F,A,C,qf}{B,G,F,A,C,qf}{D}
B{B,G,F,A,C,qf}{B,G,F,A,C,qf}{D}
C{D}{E,G,F,A,B,C,qf}ø
D{E,G,F,A,B,C,qf}{B,G,F,A,C,qf}{D}
则得DFA如下:
0
0
0
1
10
1
最少化得{A,B,D}0={B}{A,B,D}1={C}
0
1
0
15.给定右线性文法G:
S->0S|1S|1A|0B
A->1C|1
B->0C|0
C->0C|1C|0|1
求出一个与G等价的左线性文法。
解:
由G得NFA=<{S,A,B,C}∪{f},{0,1},δ,S,{f}>
1
0,111
0,10,1
00
0
由NFA得左线性文法:
GL=<{0,1},{A,B,C,f},f,ρ’>
ρ’:
A->1
B->0
C->A1|B0|C0|C1
f->A1|B0|C0|C1
四
1.考虑下面文法G:
S->a|^|(T)
T->T,S|S
(1)消除G的左递归
(2)改写后的文法是否是LL
(1)的?
给出预分析表。
解:
(1)S->a|^|(T)
T->ST’
T’->,ST’|ε
(2)
FIRSTFOLLOW
Sa,^,(#,,,)
Ta,^,()
T’,,ε)
预分析表:
a^(),#
SS->aS->^S->(T)
TT->ST’T->ST’T->ST’
T’T’->εT->,ST’
是LL
(1)的。
五
5.文法S->AS|b
A->SA|a
(1)列出所有LR(0)项目
(2)构造LR(0)项目集规范族及识别活前缀的DFA
(3)
该文法是SLR的么?
若是构造它的SLR分析表。
解:
扩展文法:
S’->SS
S->AS|b
A->SA|ab
A
a
S
A
a
SbA
bbS
aa
S
AbA
aaS
b
A
(3)
FollowFirst
S’#a,b
S#,a,ba,b
Aa,ba,b
冲突项目I1中:
有接受项目和移进冲突,可解决.
#a,b
I5,I7存在移进,归约冲突,不可解决.
∵Follow(S)∩a∩b≠○
所以,该文法不是SLR的
8.证明下面的文法S->AaAb|BbBa
A->ε
B->ε
是LL
(1)文法。
①不含左递归;
②First(α1)∩First(α2)∩…=○
③First(A)∩Follow(A)=○
∴该文法是LL
(1)文法
七
1.给出下面表达式的逆波兰表示(后缀式):
a*(-b+c)
a+b*(c+d/e)
notAornot(CornotD)
(AandB)or(notCorD)
后缀式分别为:
ab-c+*
abcde/+*+
AnotCDnotornotor
ABandCnotDoror
3.请将表达式-(a+b)*(c+d)-(a+b+c)分别表示成三元式、间接三元式和四元式序列。
三元式:
(0)(+,a,b)
(1)(-,(0),_)
(2)(+,c,d)
(3)(*,
(1),
(2))
(4)(+,a,b)
(5)(+,(4),c)
(6)(-,(3),(5))
间接三元式:
(1)(+,a,b)
(2)(-,
(1),_)
(3)(+,c,d)
(4)(*,
(2),(3))
(5)(+,
(1),c)
(6)(-,(4),(5))
间接代码:
(1)
(2)
(3)
(4)
(1)
(5)
(6)
四元式:
(0)(+,a,b,T1)
(1)(-,T1,_,T2)
(2)(+,c,d,T3)
(3)(*,T2,T3,T4)
(4)(+,a,b,T5)
(5)(+,T5,c,T6)
(6)(-,T4,T6,T7)
7.用7.5.1节的方法,把下面语句翻译成四元式序列:
WhileA IfA=1thenC: =C+1 ElsewhileA≤DdoA: =A+2; 100(j<,A,C,102) 101(j,_,_,115) 102(j<,B,D,104) 103(j,_,_,115) 104(j=,A,1,106) 105(j,_,_,109) 106(+,C,1,T1) 107(: =,T1,_,C) 108(j,_,_,114) 109(j≤,A,D,111) 110(j,_,_,115) 111(+,A,2,T2) 112(: =,T2,_,A) 113(j,_,_,109) 114(j,_,_,100) 115 十 3.试对以下基本块B1和B2: B1: A: =B*C D: =B/C F: =2*E G: =B*C H: =G*G F: =H*G L: =F M: =L B2: B: =3 D: =A+C E: =A*C G: =B*F H: =A+C I: =A*C J: =H+I K: =B*5 L: =K+J M: =L 分别应用DAG对它们进行优化,并就以下两种情况分别写出优化后的四元式序列: (1)假设只有G,L,M在基本块后面还要被引用; (2)假设只有L在基本块后面还要被引用。 解: B1: F,L,M *E H 2+ * A,GD / * BC B1优化后: A: =B*C (1)G: =B*C (2)G: =B*C D: =B/CH: =G*GH: =G*G E: =A+DL: =G*HL: =G*H G: =AM: =L H: =G*G F: =H*G L: =F M: =L B2: L,M + + E,I D,H G +* *K B F315AC „‘ B2优化后: B: =3 (1)G: =3*F (2)H: =A+C D: =A+CH: =A+CI: =A*C E: =A*CI: =A*CJ: =H+I G: =B*FJ: =H+IL: =15+J H: =DL: =15+J I: =EM: =L J: =H+I K: =15 L: =K+J M: =L 5.以下程序是某程序的最内循环,试对它进行循环优化 A: =0 I: =1 L1: B: =J+1 C: =B+I A: =C+A IfI=100GOTOL2 I: =I+1 GOTOL1 L2: 解: 代码外提: B: =J+1 删除归纳变量I: 由C: =B+I可知I和C成线性关系 所以I=100和C=B+100等价,即替换为: R: =100+B IFC=BGOTOL2 同理I: =I+1可替换成C: =C+1 综上所述代码优化后为: A: =0 B: =J+1 C: =B+1 R: =100+B L1: A: =C+A IfC=RGOTOL2 C: =C+1 GOTOL1 L2:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 课后 答案 第三