1.分别写出描述以下语言的正规文法和正规式:
L1={abna|n≥0}。
答:正规文法
S→aA
A→bna
A→ba|a
正规式:ab*a
L2={ambn|n≥1,m ≥1}
答:正规文法
S→aS|bn
S→bn
S→bS|ε
正规式:aa*bb*
L3={(ab)n|n≥1}
答:正规文法
S→AB
A→aA
B→bB
B→aA|ε
正规式:(ab)*(ab)
2.将以下正规文法转换到正规式
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)代入(1)得:Z=0(0|01)*0
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)*
S→aA
A→bA|aB|b
B→aA
S=aA (1) A=bA+aB+b (2) B=aA (3)
答:将(3)代入(2)得:A=bA+a(aA)+b
=bA+aaA+b
=(b+aa)*b (4)
将(4)代入(1)得:S=a(b|aa)*b
I→l|Il|Id
答:I=l+II+Id
=l+I(l+d)
=l(l|d)*