编译原理 文法题目
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编译原理 文法题目相关的知识,希望对你有一定的参考价值。
已知文法G[S]:
S->a|^|(T)
T->T,S|S
计算每个非终结符的FIRSTVT和LASTVT集
1.构造算符优先关系表
2.构造优先函数
3.消除左递归
1) S1->S
2) S->aS
3) S->bS
4) S->a
则:
I0 = Closure(S1->.S)=S1->.S,S->.aS,S->.bS,S->.a
go(I0,S) = Closure(S1->S.)=S1->S. = I1
go(I0,a) = Closure(S->a.S,S->a.)=S->a.S,S->.aS,S->.bS,S->.a,S->a. = I2
go(I0,b) = Closure(S->b.S)=S->b.S,S->.aS,S->.bS,S->.a=I3
go(I2,S) = closure(S->aS.)=S->aS.=I4
go(I2,a) = Closure(S->a.S,S->a.) = I2
go(I2,b) = Closure(S->b.S) =I3
go(I3,S) = Closure(S->bS.) = S->bS. = I5
go(I3,a) = Closure(S->a.S,S->a.) = I2
go(I3,b) = Closure(S->b.S) = I3
由图所示,状态I2,既有归约项目(S->a.)又有移近项目(S->.aS,S->.bS,S->.a),产生冲突。当用SRL分析法时,需向前看一步,即求出:
Follow(S) = Follow(S1) = #
则,Follow(S)∩a,b =∮
故而Action(I2,a) = s2
Action(I2,b) = s3
Action(I2,#) = r4
则构造出srl分析表如下所示:
Action Goto
a b # S
I0 s2 s3 1
I1 acc
I2 s2 s3 r4 4
I3 s2 s3 5
I4 r2 r2 r2
I5 r3 r3 r3
请采纳。
编译原理:正规文法与正规式
1.分别写出描述以下语言的正规文法和正规式:
L1={abna|n≥0}。
L2={ambn|n≥1,m ≥1}
L3={(ab)n|n≥1}
解析:
(1)设文法G(S)={abna|n≥0}
正规文法:
S → aA
A → Ba
B → bn
B → bB|ε
正规式:
B = ε + bB = b*
A = Ba = b*a
S = ab*a
(2)设文法G(S)={ambn|n≥1,m ≥1}
正规文法:
S → AB
A → aA|a
B → bB|b
正规式:
A = aA + a = a*a
B = bB + b = b*b
S = AB = aa*bb*
(3)设文法G(S)={(ab)n|n≥1}
正规文法:
S → ab|abS
正规式:
S = ab + abS = ab(1+ S) = ab(ab)*
2.将以下正规文法转换到正规式
Z → 0A
A → 0A|0B
B → 1A|ε
(1)解析:
正规式:
A = 0A|0B = 0A + 0B
= 0A +0(1A + ε)
= 0A+01A+0ε
= 0A + 01A +0
= (0 + 01) A + 0
= (0101)*0
z = 0A = 0(0|01)*0
Z → U0|V1
U → Z1|1
V → Z0|0
(2)解析:
正规式:
Z=U0+V1,U=Z1+1,V=Z0+0
Z=(Z1+1)0+(Z0+0)1
=Z10+10+Z01+01
=Z(10+01)+10+01
=(10|01)*(10|01)
S → aA
A → bA|aB|b
B → aA
(3)解析:
正规式:
S=aA,A=bA+aB+b,B=aA
A=bA+aaA+b
=(b+aa)A+b
S=a(b|aa)*b
I → l|Il|Id
(4)解析:
正规式:
I=l+Il+Id
=I(l+d)+l
=(l|d)*l
以上是关于编译原理 文法题目的主要内容,如果未能解决你的问题,请参考以下文章