《编译原理》期末复习资料完整版要点Word格式.docx
- 文档编号:19435770
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:17
- 大小:295.22KB
《编译原理》期末复习资料完整版要点Word格式.docx
《《编译原理》期末复习资料完整版要点Word格式.docx》由会员分享,可在线阅读,更多相关《《编译原理》期末复习资料完整版要点Word格式.docx(17页珍藏版)》请在冰豆网上搜索。
aAcBe
(2)A—>
b
(3)A—>
Ab
(4)B—>
d
对输入串abbcde#进行分析,检查该符号串是否是G[S]的句子。
设一个先进后出的符号符,并把句子左括号“#”号放入栈底,其分析过程如下:
步骤
符号栈
输入符号串
动作
(1)
#
abbcde#
移进
(2)
#a
bbcde#
(3)
#ab
bcde#
归约(A—>
b)
(4)
#aA
(5)
#aAb
cde#
Ab)
(6)
(7)
#aAc
de#
(8)
#aAcd
e#
归约(B—>
d)
(9)
#aAcB
(10)
#aAcBe
归约(S—>
aAcBe)
(11)
#S
接受
语法树如下:
一、计算分析题(60%)
1、正规式→NFA→DFA→最简DFA
P72第1题
(1)、(4);
第一题1、构造下列正规式相应的DFA.
(1)1(0|1)*101
先构造NFA
用子集法将NFA确定化
1
S
A
AB
AC
ABZ
除S,A外,重新命名其他状态,令AB为B、AC为C、ABZ为D,因为D含有Z(NFA的终态),所以D为终态,因此有:
B
C
D
得到DFA如下所示:
(4)b((ab)*|bb)*ab
P72第4题(a)
4、把下图确定化和最小化
确定化:
a
01
重新命名,以A、B、C代替{0}、{01}、{1},其中A为初态,A,B为终态,因此有:
最小化:
:
初始分划得终态组{A,B},非终态组{C}
Π0:
{A,B},{C},对终态组进行审查,判断A和B是等价的,故这是最后的划分。
重新命名,以A、C代替{A,B}、{C},因此有:
即DFA最小化如下:
第7题
7、给文法G[S]:
S→aA|bQ
A→aA|bB|b
B→bD|aQ
Q→aQ|bD|b
D→bB|aA
E→aB|bF
F→bD|aE|b
构造相应的最小的DFA。
先构造NFA:
用子集法将NFA确定化:
Q
BZ
DZ
将S、A、BZ、B、Q、DZ、D重新命名,分别用0、1、2、3、4、5、6表示。
因为2、5中含有Z,所以它们为终态。
因此有:
4
2
6
3
5
初始分划得:
终态组{2,5},非终态组{0,1,3,46}
{2,5},{0,1,3,4,6}
对{0,1,3,4,6}进行审查:
{1,4}输入b到达{2,5},而{0,3,6}输入b到达{3,4,6},故得到新分划{1,4},{0,3,6}
Π1:
{2,5},{1,4},{0,3,6}
对{0,3,6}进行审查:
{0}经过b到达{2},{3,6}经过b到达{3,6},故得到新分划{0},{3,6}
Π3:
得到最后划分{0},{1,4},{2,5},{3,6}
重新命名,以A,B,C,D分别代替{0},{1,4},{2,5},{3,6},其中A为始态,C为终态,可得到最小DFA如下:
2、自顶向下方法
(一)设文法G(E):
E→E+T|T
T→T*F|F
F→i|(E)
(1)判断是否为LL
(1)文法.
(2)构造文法的预测分析表.
详见P93-96例题。
(1)由于文法中含有左递归,所以必须先消除左递归,使文法变为:
E→TE`
E`→+TE`|ε
T→FT`
T`→*FT`|ε
F→i|(E)
FIRST集合如下:
FIRST(E)={(,i}
FIRST(E`)={+,ε}
FIRST(T)={(,i}
FIRST(T`)={*,ε}
FIRST(F)={(,i}
FOLLOW集合如下:
FOLLOW(E)={),#}
FOLLOW(E`)={),#}
FOLLOW(T)={+,),#}
FOLLOW(T`)={+,),#}
FOLLOW(F)={+,*,),#}
各产生式的SELECT集合如下:
SELECT(E→TE`)={(,i}
SELECT(E`→+TE`)={+}
SELECT(E`→|ε)={),#}
SELECT(T→FT`)={(,i}
SELECT(T`→*FT`)={*}
SELECT(T`→|ε)={+,),#}
SELECT(F→i)={i}
SELECT(F→(E))={(}
由上可知有相同左部产生式的SELECT集合的交集为空,故文法是LL
(1)文法。
(2)构造文法的预测分析表如下:
i
+
*
(
)
E
→TE`
E`
→+TE`
→ε
T
→FT`
T`
→*FT`
F
→i
→(E)
(二)P1016.(4)改写下面文法为LL
(1)文法,井对每个LL
(1)文法构造相应的预测分析表。
3、自底向上方法
已知文法G(E):
[0]S'
→E
[1]E→E+T[2]E→T
[3]T→T*F[4]T→F
[5]F→(E) [6]F→i
(1)证明该文法是SLR
(1)文法.
(2)若已给出下面的SLR
(1)分析表,试分析句子(i+(*i))#输入串出错的位置。
状态
ACTION
GOTO
S5
S4
S6
acc
r2
S7
r4
8
r6
9
7
10
S11
r1
r3
11
r5
3、解:
(1):
先分析LR(0)项目:
由上可见:
I1,I2,I9存在移进—归约冲突.分析FOLLOW集:
因为:
对I1FOLLOW(S’)={#}∩{+}=ф
对I2FOLLOW(E)={+,#,)}∩{*}=ф
对I9FOLLOW(E)={+,#,)}∩{*}=ф
所以是SLR
(1)文法。
(2):
STEP
X
(i+(*i)#
action
goto
04
#(
i+(*i)#
045
#(i
+(*i)#
043
#(F
042
#(T
048
#(E
0486
#(E+
(*i)#
04864
#(E+(
*i)#
error
4、
(一)给出语句ifa+b>
b+c*dthenwhilex*y>
3dox:
=x-a*belse
whileb+c*d>
10dob:
=b-(x*y+5)相应的三地址代码.
t1=a+b
(12)
goto(6)
t2=c*d
(13)
goto(23)
t3=b+t2
(14)
t7=c*d
ift1>
t3goto(6)
(15)
t8=b+t7
goto(14)
(16)
ift8>
10goto(18)
t4=x*y
(17)
ift4>
3goto(9)
(18)
t9=x*y
goto(13)
(19)
t10=t9+5
t5=a*b
(20)
t11=b-t10
t6=x-t5
(21)
b=t11
x=t6
(22)
(23)
(二)While a>0∨b<0 do
Begin
X:
=X+1;
ifa>0thena:
=a-1
elseb:
=b+1
End;
翻译成四元式序列.(10分)
●解:
(1)(j>,a,0,5)
(2)(j,_,_,3)
(3)(j<,b,0,5)
(4)(j,_,_,15)
(5)(+,x,1,T1)
(6)(:
=,T1,_,x)
(7)(j>,a,0,9)
(8)(j,_,_,12)
(9)(-,a,1,T2)
(10)(:
=,T2,_,a)
(11)(j,_,_,1)
(12)(+,b,1,T3)
(13)(:
=,T3,_,b)
(14)(j,_,_,1)
(15)
5、
(一)设有基本块(10分)
T1:
=2
T2:
=10∕T1
T3:
=S-R
T4:
=S+R
A:
=T2*T4
B:
=A
T5:
T6:
=T3*T5
=T6
(1)画出DAG图;
(2)假设基本块出口时只有A,B还被引用,请写出优化后的四元序列。
5
(一)、解:
(1)DAG:
(3分)
(2)优化后的四元式
T3:
T4:
A:
=5*T4
B:
=T3+T4
(二)P255-257DAG图
例试构造以下基本块G的DAG
(1)T0:
=3.14
(2)T1:
=2*T0
(3)T2:
=R+r
(4)A:
=T1*T2
(5)B:
(6)T3:
(7)T4:
(8)T5:
=T3*T4
(9)T6:
=R-r
(10)B:
=T5*T6
(11)ifB<
=10goto
(1)
(1)画出DAG图;
(2)假设基本块出口时只有A,B还被引用,请写出优化后的四元序列。
(1)DAG图如下:
(2)四元序列如下:
T2:
T6:
A:
=6.28*T2
B:
=A*T6
四、
●1.1
先给出NFA图:
画状态转换表:
I
C'
D'
E'
BC
BD
CBE
BCE
得DFA如下图:
1.4
24
13
由NFA,得DFA如图:
●P72第4题(a)
画状态转换表:
Ia
Ib
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译原理 编译 原理 期末 复习资料 完整版 要点