1.分別寫出描述以下語言的正規文法和正規式:
L1={abna|n≥0}。
L2={ambn|n≥1,m ≥1}
L3={(ab)n|n≥1}
解析:
(1)設文法G(S)={abna|n≥0}
正規文法:
S → aA
A → Ba
B → bn
B → bB|ε
正規式:
B = ε + bB = b*
A = Ba = b*a
S = ab*a
(2)設文法G(S)={ambn|n≥1,m ≥1}
正規文法:
S → AB
A → aA|a
B → bB|b
正規式:
A = aA + a = a*a
B = bB + b = b*b
S = AB = aa*bb*
(3)設文法G(S)={(ab)n|n≥1}
正規文法:
S → ab|abS
正規式:
S = ab + abS = ab(1+ S) = ab(ab)*
2.將以下正規文法轉換到正規式
Z → 0A
A → 0A|0B
B → 1A|ε
(1)解析:
正規式:
A = 0A|0B = 0A + 0B
= 0A +0(1A + ε)
= 0A+01A+0ε
= 0A + 01A +0
= (0 + 01) A + 0
= (0101)*0
z = 0A = 0(0|01)*0
Z → U0|V1
U → Z1|1
V → Z0|0
(2)解析:
正規式:
Z=U0+V1,U=Z1+1,V=Z0+0
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
(3)解析:
正規式:
S=aA,A=bA+aB+b,B=aA
A=bA+aaA+b
=(b+aa)A+b
S=a(b|aa)*b
I → l|Il|Id
(4)解析:
正規式:
I=l+Il+Id
=I(l+d)+l
=(l|d)*l