上下文无关文法(CFG)

一、上下文无关文法:G=(V,sigma,R,S),
1) V: 有穷变元集
2) sigma: 有穷终结符集
3) R: 有穷规则集

4) S∈V: 初始变元

二、定理:正则语言都是上下文无关语言。证明方法:可以为每个正则语言设计上下文无关文法。其中CFG的V等于DFA的状态集;转移(qi,a)=qj对应规则:Ri := aRj;终结符qi∈F对应规则:Ri := 空。

三、几个例子:0n1n,wwT(T表示转置),非ww都是上下文无关,而ww不是上下文无关(是上下文有关的)。

四、最左派生: 每一步都替换最左边的变元。歧义地产生: 有两个不同的最左派生。歧义文法:文法歧义的产生某个串。

五、乔姆斯基范式(CNF): 只允许如下形式的规则: 1、S := 空;2、A := BC;3、A := a。 其中A,B,C是任意变元;B,C不是初始变元(即初始变元不能在右方出现) ;a是任意终结符

六、定理:任何CFG都是CNF。通过将每个CFG都能够转化成CNF的算法来进行证明。其中要逐步处理5种情况:

1) 添加新的初始变元
2) 处理A := 空 (空规则)
3) 处理A := B (单一规则)
4) 处理A := u1u2…uk (k≥3)
5) 处理A := aiaj, A := aiB, A := Bai

你可能感兴趣的:(其他技术)