正规文法与正规式
1.分别写出描述以下语言的正规文法和正规式:
L1={abna|n≥0}
正规文法 : S->aA
A->bA|a
正规式: S = a (b)* a
L2={ambn|n≥1,m ≥1}
正规文法 : S->aS
S->bs | b
正规式: S = a (a)* b (b)*
L3={(ab)n|n≥1}
正规文法: A -> (ab)A | ab
正规式 : A -> (ab)A | ab -> aA | a
即a =(ab) .而该形式产生 a*a , 既有 A = ( ab ) *.
2.将以下正规文法转换到正规式
Z→0A
A→0A|0B
B→1A|ε
正规式 : A ->0A |0B =0A | 0( 1A | ε )=0A + 01A +0 =( 0 + 01)A +0 -> aA | b
即a =( 0 + 01) ,b= 0 .而该形式产生 a*b , 既有 A = ( 0 + 01)* 0,代入 Z 中有
Z = 0( 0 + 01)*0 = 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) →Za |a
即a =(10 + 01) .而该形式产生 aa* , 既有 Z = (10 + 01)* = (10 | 01)* .
S→aA
A→bA|aB|b
B→aA
正规式 : A→bA|aB|b =bA +a(aA) + b= bA +a2A +b =(b+a2)A + b → aA | b
即a = ( b + a2) ,b = b .而该形式产生 a*b , 既有 A = (b+a2) * b ,代入 Z 中有
Z = a (b+a2) * b = a ( b | a2) * b
I→l|Il|Id
正规式 : I→l | Il | Id =l | I( I + d )= I( I + d ) +I →Ia | b
即a =( I + d ) ,b= I .而该形式产生 ba* , 既有 I=I( I + d ) * =I( I | d ) *.