1.分别写出描述以下语言的正规文法和正规式:
L1={abna|n≥0}。
L2={ambn|n≥1,m ≥1}
L3={(ab)n|n≥1}
解:
(1)文法:S→aA A→aB B→bn B→bB|ε
正规式:S→ab*a
(2)文法:S→AB A→aA|ε B→bB|ε
正规式:S→a*b*
(3)文法:S→ab|abS
正规式:S→(ab)*
2.将以下正规文法转换到正规式
Z→0A
A→0A|0B
B→1A|ε
解:
Z=0A ,A=0A+0B ,B=1A+ε
A=0A+0(1A+ε)
A=0A+01A+0ε=0A+01A+0=(0+01)A+0
令x=(0+01),y=0,根据规则A→xA|y转换为正规式为A=x*y
A=x*y=(0+01)*0
Z=0(0+01)*0=0(0|01)*0
Z→U0|V1
U→Z1|1
V→Z0|0
解:
Z=U0+V1 ,U=Z1+1 ,V=Z0+0
将U,V代入Z可得:Z=(Z1+1)0+(Z0+0)1=Z10+10+Z01+01=(10+01)Z+10+01=(10|01)*(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+aaA+b=(b+aa)A+b
Z = a(bA+aB+b)=abA+aaB+ab=abA+aaaA+ab= a*(ab)*
I→l|Il|Id
解:
I=l+Il+Id=I(l+d)+l=l|(l|d)|l= l(l|d)*