正规文法与正规式

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

L1={abna|n≥0}。

解:正规文法:

  S→aA  A→bna

  A→Ba  B→bn

  B→bB|b

正规式:

  B=b*

  A=b*a

  S=ab*a

 

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

解:正规文法:

  S->AB  A->aA|a

  B->bB|b

正规式:B=a*b*

    A=a*b*b

    S=aa*b*b

 

 

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

 解:

正规文法:S->aA  A->bB

     B-aA|ε

正规式:(ab)*(ab)

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

(1)

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

 解:Z→0A   (1)
  A→0A|0B (2)
  B→1A|ε   (3)

将(3)代入(2) 得:A = 0A+0(1A+£)=0A+01A+0

                  =(0+01)A +0

                  =(0+01)*0  (4)

将(4)代入(2)得:Z=0(0|01)*0

 

(2)

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

解: Z→U0|V1  (1)
   U→Z1|1    (2)
   V→Z0|0    (3)

将(2)、(3)同时代入(1)得:Z=(Z1+1)0+(Z0+0)1

                =Z10+10+Z01+01

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

                =(10|01)(10|01)*

 

(3)

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

解:S→aA    (1)
  A→bA|aB|b  (2)
  B→aA    (3)

将(3)代入(2)得:A=bA+aaA+b

           =(b+aa)*b  (4)

将(4)代入(1)得:S=a(b|aa)*b  

 

 (4)

I→l|Il|Id

解:I=l+II+Id=l+I(l+d)=l(l|d)*

 

posted @ 2019-10-15 23:32  ling9709  阅读(456)  评论(0编辑  收藏  举报