编译原理综合复习题Word格式.docx
- 文档编号:17695511
- 上传时间:2022-12-08
- 格式:DOCX
- 页数:14
- 大小:39.93KB
编译原理综合复习题Word格式.docx
《编译原理综合复习题Word格式.docx》由会员分享,可在线阅读,更多相关《编译原理综合复习题Word格式.docx(14页珍藏版)》请在冰豆网上搜索。
aA’|dA’=ABc|ε
AaABc|a|d有无间接左递归?
?
A(d|a)A’
A’a(BcA’|ε)
排序FTE
左部非终结符下标>
右部时改写
●ETaEFaEaba
Eb
EEaba|b
●EbE’
E’abaE’|ε
9.构造下列文法G[A]的LL
(1)预测分析表:
ABCc|gDB
BbCDE|ε
CDaB|ca
DdD|ε
EgAf|c
(1)求各非终结符的FIRST集和FOLLOW集
BεDε
FIRST
FOLLOW
A
FIRST(B)-{ε}UFIRST(C)
U{g}={b,g,d,c,a}
{#}U{f}={#,f}
B
{b,ε}
FIRST(C)UFOLLOW(A)UFOLLOW(C)
={#,f,d,c,a,g}
C
FIRST(D)-{ε}U{a}U{c}={d,c,a}
{c}UFIRST(D)-{ε}UFIRST(E)={d,g,c}
D
{d,ε}
FIRST(B)-{ε}UFOLLOW(A)UFIRST(E)U{a}UFOLLOW(D)={b,#,f,a,g,c}
E
{g,c}
FOLLOW(B)={#,f,d,c,a,g}
(2)文法G[A]的预测分析表
SELECT
ABCc
FIRST(BCc)=FIRST(B)–{ε}UFIRST(C)={a,b,c,d}
AgDB
{g}
BbCDE
{b}
Bε
{ε}UFOLLOW(B)={#,f,d,c,a,g,ε}
CDaB
FIRST(DaB)=FIRST(D)-{ε}U{a}={a,d}
Cca
{c}
DdD
{d}
Dε
{ε}UFOLLOW(D)={#,b,f,a,g,c,ε}
EgAf
Ec
预测分析表:
a
b
d
f
g
#
A
BCc
gDB
ε
bCDE
DaB
ca
dD
c
gAf
10.将文法G[E]改写为等价的LL
(1)文法,并给出相应的预测分析表。
G[E]:
E[T
TTE|F]
FFi|i
消除左递归、左公因子
E[T
TF]T’
T’ET’|ε
FiF’
F’iF’|ε
//E[i(iF’|ε)](ET’|ε)
(1)FIRST和FOLLOW集合
First
Follow
{[}
{#}UFirst(T’)-{ε}UFollow(T’)={[,#}
T
First(F)={i}
Follow(E)={[,#}
T’
First(E)U{ε}={[,ε}
Follow(T)UFollow(T’)={[,#}
F
{i}
{]}
F’
{i}U{ε}={i,ε}
Follow(F)UFollow(F’)={]}
F’εT’ε
Select
E[T
T’ET’
First(E)={[}
T’ε
First(ε)-{ε}UFollow(T’)={[,#}
FiF’
F’iF’
F’ε
First(ε)-{ε}UFollow(F’)={]}
T’ET’与T’εSelect交集不为空?
?
,不是二义性文法
(2)LL
(1)预测分析表
i
[
]
[T
F]T’
ET’ε
iF’
iF’
11.对下列文法G[S]:
SSaF|F
FFbP|P
Pc|d
(1)计算文法中每个非终结符的FIRSTVT和LASTVT集合。
FIRSTVT
LASTVT
S
{a}UFirstvt(F)={a,b,c,d}
{a}ULastvt(F)={a,b,c,d}
{b}UFirstvt(P)={b,c,d}
{b}ULastvt(P)={b,c,d}
P
{c,d}
S’
{#}
(2)构造文法G[S]的算符优先关系表。
左|右
a<
lastS
b<
lastF
c
#<
firstF
>
<
firstP
c
firstS
=
S’#S#
(3)给出输入串cadbc#的算符优先分析过程。
移进>
归约
栈
关系
剩余输入串
动作
cadbc#
移进
#c
c>
a
adbc#
归约Pc
#P
#Pa
d
dbc#
#Pad
d>
b
bc#
归约Pd
#PaP
#PaPb
c#
#PaPbc
#
#PaPbP
b>
归约PPbP
a>
归约PPaP
#=#
接受
12.已有拓广文法G[S]:
SE[1]
EaA[2]|bB[3]
AcA[4]|d[5]
BcB[6]|d[7]
(1)构造识别文法G[S]规范句型活前缀的DFA。
I0:
S.EE.aAE.bB
I0经过EI1:
SE.Acc1
I0经过aI2:
Ea.AA.cAA.dS2
I0经过bI3:
Eb.BB.cBB.dS3
I2经过AI4:
EaA.R24
I2经过cI5:
Ac.AA.cAA.dS5
I2经过dI6:
Ad.R5S6
I3经过BI7:
EbB.R37
I3经过cI8:
Bc.BB.cBB.dS8
I3经过dI9:
Bd.R7S9
I5经过AI10:
AcA.R410
I5经过cI5S5
I5经过dI6S6
I8经过BI11:
BcB.R611
I8经过bI8S8
I8经过dI9S9
(2)构造文法G[S]的LR(0)分析表。
状态
ACTION
GOTO
S2
S3
Acc
S5
S6
S8
S9
7
R2
5
10
6
R5
R3
8
11
9
R7
R4
R6
(3)判断输入串acccd#是否为该文法的句子。
步骤
状态栈
符号栈
剩余输入串
acccd#
02
#a
cccd#
025
#ac
ccd#
0255
#acc
cd#
02555
#accc
d#
025556
#acccd
R5Ad
02555(10)
#acccA
#
R4AcA
0255(10)
#accA
025(10)
#acA
024
#aA
R2EaA
01
#E
Acc
13、设文法G为
SA
ABA|ε
BcB|d
(1)写出它的拓广文法G’;
(0)S’S
(1)SA
(2)ABA
(3)AεFollow(A)={#}follow(B)=first(A)-{ε}={c,d}
(4)BcBfirst(B)={c,d}
(5)Bdfirst(A)={ε}Ufirst(B)={ε,c,d}
(2)画出G’文法的LR
(1)项目集规范族对应的DFA;
S’.S,#I0S->
I1:
S’S.接受,#
S.A,#I0A->
I2:
SA.,#
A.BA,#I0B->
I3:
AB.A,#A.BA,#A.,#
A.,#B.cB,c/dB.d,c/d
B.cB,c/dI0c->
I4:
Bc.B,c/dB.cB,c/dB.d,c/d
B.d,c/dI0d->
I5:
Bd.,c/d
I3:
A->
I6:
ABA.,#
B->
I3
c->
I4
d->
I5
c->
d->
B->
I7:
BcB.,c/d
(3)证明它是LR
(1)文法;
(4)构造它的LR
(1)分析表。
S4
R1
规约时看后继符
14.为下面的文法添加语义规则,输出S’产生的二进制数的值S.val。
如输入:
101.101,输出5.625。
S’S
SL.L|L
LLB|B
B0|1
产生式语义规则
(0)S’Sprint(S.val)
(1)SL1.L2S.val=L1.val+L2.val/(2^L2.len)
(2)SLS.val=L.val
(3)LL’BL.val=L’.val*2+B.val
(4)LBL.val=B.val
(5)B0B.val:
=0
(6)B1B.val:
=1
15.试把以下程序划分为基本块,并作出程序流图。
->
Read(A,B)
F=1
C=A*A
D=B*B
IFC<
DGOTOL1
E=A*A
F=F+1
E=E+F
WRITE(E)
STOP
L1:
E=B*B
F=F+2
IFE>
100GOTOL2
L2:
F=F-1
GOTOL1
16.试把以下程序划分为基本块,并作出程序流图。
B1->
(1)readA,B
(2)F:
=1
(3)C:
=A*A
(4)D:
=B*B
(5)ifC<
DgotoL1
B2->
(6)E:
(7)F:
=F+1
(8)E:
=E+F
(9)writeE
(10)halt
B3->
(11)L1:
E:
(12)F:
=F+2
(13)E:
(14)writeE
(15)ifE>
100gotoL2
B4->
(16)halt//停止
B5->
(17)L2:
F:
=F-1
(18)gotoL1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 综合 复习题
![提示](https://static.bdocx.com/images/bang_tan.gif)