第六次作业——正规文法与正规式
1.分别写出描述以下语言的正规文法和正规式:
L1={abna|n≥0}。
正规文法:
S→aA,A→bna
A→Ba,B→bn
B→bB|ε
正规式:
S=aA
A=Ba
B=b*
S=ab*a
L2={ambn|n≥1,m ≥1}
正规文法:
S→aP,P→bn
P→Bb,B→bn
B→bB|b
S→Qb,Q→am
Q→Aa,A→am
A→Aa|a
正规式:
A=Aa|a
B=bB|b
S=aB|Ab
=a(bB|b)|(aA|a)b
=abb*|a*ab
=(ab)(b|a)*
L2={(ab)n|n≥1}
正规文法:
S→anP,P→bn
P→Bb,B→bn
B→bB|b
S→Q(bB|b),Q→an
Q→aA,A→an
A→aA|a
正规式:
A=aA|a
B=Bb|b
S=(aA|a)(Bb|b)
=aa*b*b
=a(ab)*b
2.将以下正规文法转换到正规式
Z→0A
A→0A|0B
B→1A|ε
A=(0A+0(1A+ ε ))
=0A+01A+0
=(0+01)A+0
=(0|01)A|0
=(0|01)*0
Z=0A=0(0|01)*0
Z→U0|V1
U→Z1|1
V→Z0|0
Z=U0+V1
=(Z1+1)0+(Z0+0)1
=Z10+10+Z01+01
=Z(10+01)+(10+01)
=Z(10|01)|(10|01)
=(10|01)*(10|01)
S→aA
A→bA|aB|b
B→aA
A=bA+a(aA)+b
=(b+aa)A+b
=(b|aa)A|b
=(b|aa)*b
S=aA
=a(b|aa)*b
I→l|Il|Id(太难识别,修改为:L→i|Li|Ld
L=i+Li+Ld
=i+L(i+d)
=L(i|d)|i
=(i|d)*i