编译原理复习Word文件下载.docx
- 文档编号:15833306
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:22
- 大小:164.97KB
编译原理复习Word文件下载.docx
《编译原理复习Word文件下载.docx》由会员分享,可在线阅读,更多相关《编译原理复习Word文件下载.docx(22页珍藏版)》请在冰豆网上搜索。
S—aIAI(T)
T—T,SIS
消去G1的左递归。
然后对每一个终结符,写出不带回溯的递归子程序。
S—aIAI(T)
T—ST'
T,ST'
I&
Voidmatch(tokent)
{if(lookahead==t)
lookahead=nexttoken;
elseerror();
}
voidS()
{if(lookahead=='
a'
)match(‘a'
);
elseif(lookahead==A'
match(‘'
elseif(lookahead=='
('
)
{match(‘('
T();
if(lookahead=='
)'
)match(‘)'
}voidT(){S();
T'
();
voidT'
()
'
{match(‘,'
S();
}}
4.设有以下文法:
S—eEfGh|g
LFSG|h
F—SEc|cG|&
G^Sh|&
(1)求出该文法每一个非终结符的FOLLOW集。
(2)它是LL
(1)文法吗?
为什么?
(1)
FIRST(S)={e,g}
FIRST(E)={h,c,e,g,}
FIRST(F)={c,e,g,&
FIRST(G)={e,g,&
FOLLOW(S)={#,e,g,h,c,f}
FOLLOW(E)={f,c}
FOLLOW(F)={e,g}
FOLLOW(G)={h,f,c,e,g}
(2)
e
f
g
h
c
#
S
SteEfGh
STg
E
Etfsg
Et£
SG
Erh
Erfsg
sg
F
FtSEc
FtcG
Ft£
G
G^Sh
G^s
ASh
G^e
G^S
不是LL
(1)文法
5.设有文法:
StaBc|bAB
AtaAb|b
Btb|£
构造其LL
(1)分析表,并分析符号串baabbb是否是该文法的句子
FIRST(S)={a,b}
FIRST(A)={a,b}
FOLLOW(S)={#}
FOLLOW(A)={b,#}
FIRST(B)={b,&
FOLLOW(B)={c,#}
a
b
StaBc
StbAB
AtaAb
Atb
Btb
Bt£
步骤
下推栈
输入串
动作
查分析表
#S
baabbb#
pop(S),push(bAB)
2
#BAb
baabbb#
pop(b),next(ip)
匹配b
3
#BA
aabbb#
pop(A),push(aAb)
4
#BbAa
aabbb#
pop(a),next(ip)
匹配a
5
#BbA
abbb#
6
#BbbAa
abbb#
7
#BbbA
bbb#
pop(A),push(b)
8
#Bbbb
bbb#
9
#Bbb
bb#
10
#Bb
b#
11
#B
pop(B)
12
正确结束
所以符号串baabbb是该文法的句子
6.下面文法是否是LL
(1)文法,说明理由
(1)S^Ab
2a|B|£
B^b|£
(2)S^aSe|B
B^bBe|C
SaCe|d
7.对下列文法G:
S'
—S
P—S|i
S—D(R)
D—i
R—R;
P|P
求出每个非终结符的FIRSTVT集和LASTVT集,并构造算符优先
关系表。
FIRSTVT(S'
)={(,i}
FIRSTVT(P)={i,(}
LASTVT(S'
)={)}
LASTVT(P)={),i}
i
(
>
<
=
):
LASTVT(R)={;
),i}
FIRSTVT(R)={;
i,(}
8.有文法G[S]:
SV
VT|ViT
TF|T+F
F)V*|(
(1)给出(+(i(的规范推导。
⑵指出句型F+Fi(的短语,句柄,素短语。
(3)G[S]是否为算符优先文法?
若是,给出
(1)中句子的分析过程
(1)S=>
V=>
ViT=>
ViF=>
Vi(=>
Ti(=>
T+Fi(=>
T+(i(=>
F+(i(=>
(+(i(
⑵句型F+Fi(的语法树:
TF
/IXI
T+F(
I
短语:
F,F+F,(,F+Fi(
句柄:
素短语:
(,F+F
(3)FIRSTVT禾口LASTVT
FIRSTVT
LASTVT
i,+,),(
i,+,*,(
V
T
+,),(
+,(,*
),(,
*,(
(2)算符优先关系
+
*
三
因为任意两个终结符的优先关系唯一,所以该文法为算符优先文法
(3)(+(i(的分析过程
(+(i(#
#<
(
移进
#(
+(i(#
(>
+
归约F(
#F
#F+
(i(#
+<
#F+(
i(#
i
#F+F
+>
归约TT+F
#T
#Ti
(#
i<
#Ti(
#
#TiF
i>
归约VViT
#V
#=#
接受
9.设文法G(S)
—A
A—aA|b
构造识别文法G(S的所有活前缀的DFA.
10=closure({Si.A})
10:
S'
—.A
A—.aA
A—.b
11=closure(goto(IO,A))
I1:
—A.
12=closure(goto(I0,a))
I2:
A—a.A
A—.aA
13=closure(goto(I0,b))
I3:
A—b.
14=closure(goto(I2,A))I4:
A—aA.closure(goto(I2,a))=I2closure(goto(I2,b))=I3
10.设文法G,试构造G的LR(0)分析表
G:
(1)S—CC
(2)C—cC
(3)C—d
拓广为:
S—S
S—CC
C—cC
C—d
10=closure({S—・S})
10:
—・S
S—・CC
C—・cC
11=closure(goto(IO,S))
I1:
—S・
I2=closure(goto(I0,C))
I2:
S—C.C
C—.cC
C—.d
I3=closure(goto(I0,c))
I3:
C—c.C
14=closure(goto(I0,d))I4:
C—d.
15=closure(goto(I2,C))I5:
S—CC.
closure(goto(I2,c)片I3closure(goto(I2,d))=I4
16=closure(goto(I3,C))I6:
C—cC.
closure(goto(I3,c)片I3closure(goto(I3,d))=I4
状
态
action
goto
d
S3
S4
acc
r3
r1
r2
11.对于文法A-aA|a构造SLR
(1)分析表
(1)A—aA
(2)A—a
A'
ta
AtaA
Ata
10=closure({A‘T.a})
I0:
A'
t.A
At.aA
At.a
tA.
Ata.A
Ata.
13=closure(goto(I2,A))
AtaA.
closure(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 复习