请输入您要查询的百科知识:

 

词条 等价文法
释义

§ 概述

设有两文法G1和G2,如果L(G1)=L(G2),则称G1和G2为等价文法。

§ 文法等价变换(定理)

一. 对任一文法G1均可构造文法G2,使得L(G1)=L(G2),并且G2的初始符号不出现于产生式的右部.

例:   G1[Z]:   Z→abZA|a

A→b

经过等价变换后可得到文法G2[Z']:

G2[Z']:  Z' →Z

Z →abZA|a

A →b

二.  对任一文法G1均可构造文法G2,使得L(G1)=L(G2),并且G2中的每个非终极符出现于某句型中.

步骤:

1.初始化β={ Z },Z为文法G1的初始符;

2.递归扩充β:

β=β∪{ D| A→xDy∈G1, A∈β,D∈Vn };

3.从G1中删去左部不在β中的那些产生式.

例:  G1[Z]:   Z→abZA|a

A→b

B→ab

解:     按照算法,这个等价变换可分为三步:

(1).初始化β={ Z }

(2).递归扩充β={ Z,A }

(3).删去无用的产生式 B→ab可得:

G2[Z]: Z→abZA|a

A→b

三. 对任一文法G1均可构造文法G2,使得L(G1)=L(G2),并且在G2中没有形如A→B的产生式,其中B∈Vn.

☆ 特型产生式: 形如  A→B 的产生式,其中 B∈Vn.

步骤:

1.对每一个A∈Vn ,求:

βA={ F| AF,F∈Vn };

2.令G1中所有非特型产生式为G2的产生式;

3.若有F∈βA,且有 F→x 是非特型产生式,则令 A→x ∈G2;

4.删去无用的产生式.

例:  G1[A]:  A→B|dD

B→A|E|b

E→B|e

D→d|Da

解: (1).求得:

βA={ B,A,E }

βB={ A,B,E }

βD={  }

βE={ B,A,E }

(2).先令G1中的非特型产生式为G2的产生式:

A→dD

B→b

E→e

D→d|Da

(3).再扩充下列产生式:

A→dD|b|e

B→dD|b|e

E→dD|b|e

此时G2[A]:

A→dD|b|e

B→dD|b|e

E→dD|b|e

D→d|Da

(4).删去无用的产生式:(根据定理二)

.初始化β={ A }

.扩充β={ A,D }

.故删去 B→dD|b|e 和 E→dD|b|e

最后得到 G2[A]:

A→dD|b|e

D→d|Da

四. 对任一文法G1(G1不能识别空串ε)均可构造文法G2,使得L(G1)=L(G2),并且G2中没有ε产生式.

步骤:

1.初始化β={ A|A→ε∈G1};

2.递归扩充β=β∪{ D|D→x∈G1,x∈β的正闭包};

3.从G1中删去所有产生式;

4.从G1中删去只能导出空串的非终极符(即对于非终极符A只有A→ε一个产生式);

5.若有产生式 A→C1C2...Cn,且Ci∈β(1≤i≤n ),则扩充添加产生式

A→C1...C(i-1)C(i+1)...Cn,

重复此过程,直到不出现新产生式为止.

例:  文法G1[A]:

A→aBbD

D→BB

B→b|ε

解:    .初始化β={ B }

.递归扩充β={ B,D }

.删去ε产生式B→ε

.无只能导出空串的非终极符

.重复扩充添加产生式:

A→aBb

A→abD

A→ab

D→B

故等价文法G2[A]:

A→aBbD|aBb|abD|ab

D→BB|B

B→b

五. 对于任一文法G1均可构造文法G2,使得L(G1)=L(G2),并且G2没有直接左递归的产生式.

步骤:

1.对于文法A→Aβ|γ(其中β非空,γ不以A开头),可改写成:

A→γA'

A'→βA'|ε

(即将直接左递归变换成直接右递归)

2.同理,对于产生式A→Aβ1|Aβ2|...|Aβn|γ1|γ2|...|γm

(其中βi 非空,1≤i≤n,γj 不以A开头,1≤j≤m),可改写成:

A→γ1A'|γ2A'|...|γmA'

A'→β1A'|β2A'|...|βnA'|ε

例:      文法G1[E]:

E →  E+T |T

T → T*F |F

F → i | (E)

经过等价变换后,得到文法G2[E]:

E → TE'

E' → +TE'|ε

T →FT'

T' →*FT'|ε

F → i| (E)

随便看

 

百科全书收录594082条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/2/23 0:45:22