编译原理6 正规文法与正规式


1.分别写出描述以下语言的正规文法和正规式:

L1={abna|n≥0}。

L2={ambn|n≥1,m ≥1}

L3={(ab)n|n≥1}

 答:

正规文法:

L1:S->aA

  A->bA | a

L2:S->aS

     S->bS | ε

L3:S->aA

  A->bS | b

正规式:

L1:ab*a

L2:aa*bb*

L3:ab(ab)*

 

 2.将以下正规文法转换到正规式

Z→0A
A→0A|0B
B→1A|ε

 答:Z=0A,A=0A+0B,B=1A+ε

  A = 0A + OB

  = 0A + 0(1A+ε)

  = 0A + 01A + 0

  =(0+01)A+0

  = (0|01)*0

  =(0101)A10

  所以Z = 0A = 0 (0|01)*0

Z→U0|V1
U→Z1|1
V→Z0|0

答: 

Z = U0 + V1

  U = Z1 + 1

  V = Z0 + 0 

  Z = (Z1+1)0 + V1

  Z = (Z1+1)0 +(Z0+0)1

  Z = Z10 + 10 +Z01 + 01

  Z = Z(10+01)+10+01

  Z = (10+01)*1001

S→aA
A→bA|aB|b
B→aA

 答:

  S = aA , A = bA + aB + b , B = aA

  A = bA + aB + b

        = bA + aaA + b

     = (b+aa)A + b = (b|aa)*b

    S = aA = a(b|aa)*

 

I→l|Il|Id

答: 

   I→l | Il | Id

    =l | I( I + d )

    = I( I + d ) +I

     →Ia | b

    得: a =( I + d ) ,b= I

   I=I( I + d ) *  =I( I | d ) *.

原文地址:https://www.cnblogs.com/longlog/p/11696594.html