编译原理 文法题目

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编译原理 文法题目相关的知识,希望对你有一定的参考价值。

已知文法G[S]:
S->a|^|(T)
T->T,S|S
计算每个非终结符的FIRSTVT和LASTVT集
1.构造算符优先关系表
2.构造优先函数
3.消除左递归

参考技术A 首先扩展文法为:
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

 

 

 

 

 

 

 

 

 

以上是关于编译原理 文法题目的主要内容,如果未能解决你的问题,请参考以下文章

编译原理-LL1文法详细讲解

编译原理 题目

编译原理题目:将下面的NFA确定化

LRSLRLRLALR文法之间的关系—编译原理

如何消除文法二义性如何判断二义文法—编译原理

什么是LLLRLR文法LR分析表—编译原理