06 正规文法与正规式

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

L1={abna|n≥0}

正规文法:L1 -> AB   A ->aBa    B -> bB|ε

正规式: ab*a

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

正规文法:L2 -> AB  A -> aA|a   B ->bB|b

正规式:aa*bb*

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

正规文法:L3 -> A   A -> aAb|ab

正规式:ab(ab)*

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

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

转换可得:①Z=0A ②A=0A+0B ③B=1A+ε

将③代入②可得:A=0A+0(1A+ε)

          =0A+01A+0

          =(0+01)A+0

∴ A=(0|01)*0

将②代入①可得:Z=0(0+01)*0

∴ Z=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+(Z0+0)1

            =Z10+10+Z01+01

            =(10+01)Z+10+01

∴ Z=(10|01)*(10|01)   

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

转换可得:①S=aA ②A=bA+aB+b ③B=aA

将③代入②可得:A=bA+a(aA)+b

          =bA+aaA+b

          =(aa+b)A+b

∴ A=(aa|b)*b

将上式代入①可得:

S = a(aa|b)*b

I→l|Il|Id

转换可得:I=l+Il+Id

     =I(l+d)+l

       =(l+d)*+l

∴ I=(l+d)*l 

原文地址:https://www.cnblogs.com/HvYan/p/11676114.html