对任何正规式r,选择一个非终结符S生成产生式S→r,为区别文法中的产生式,把这个产生式叫做正规产生式,并将S定为G的识别符号。
若x和y都是正规式,对形如A→xy的正规产生式,重写成:A→xB,B→y两个正规产生式,其中B是新选择的非终结符,即B∈V
n
对已形成的形如A→x
*
y的正规产生式,重写为:
A→xB
A→y
B→xB
B→y 其中B为一新非终结符。
对形如A→x|y的正规产生式,重写为:
A→x,A→y
不断利用上述规则做变换,直到每个产生式都符合三型文法的要求。
例4.9
将R=a(a|d)
*
转换成相应的正规文法,令S是文法的开始符号,首先形成
S→a(a|d)
*
,然后形成S→aA和A→(a|d)
*
,再重写第二条产生式形成
S→aA A→(a|d)B,
A→ε B→(a|d)B和
B→ε
进而变换为
S→aA B→aB
A→aB B→dB
A→dB B→ε A→ε即为所求。