文档介绍:
计算机数学基础第四章.ppt第四章 上下文无关语言
4/10/2018
1
计算机科学的数学基础
CFG与CFL
设文法G = (V, T, P, S),若,对于 P,满足 V,(V T)*,则称G为2型文法或CFG。
CFG的产生式为A 形式,即其右部只有单一的非终极符A,表明用来取代A时,与A所在的上下文无关。故称为上下文无关文法。
CFG定义的语言称为CFL,记为L(G),
L(G) = {w | wT*且S *w}。
4/10/2018
2
计算机科学的数学基础
上下文无关文法的简化
无效符号:1、不出现在任何句型中的符号;2、不能产生终极符号串的符号,
生成式:右部为的生成式。
单元生成式:形为AB的生成式,A, BV。
定理4.4:每个不含的上下文无关语言都可用一个没有无效符号,生成式和单元生成式的上下文无关文法来定义。
4/10/2018
3
计算机科学的数学基础
Chomsky范式
定理4.5(Chomsky范式,或CNF):任意不含的上下文无关语言都能由这种文法产生,其中所有生成式的形式都是A → BC或A → a。在这里A,B和C都是变量,而a是终极符。
Chomsky范式文法的任何一棵语法树都是一棵二叉树。
4/10/2018
4
计算机科学的数学基础
Greibach范式
定理4.6(Greibach范式,或GNF):每一个不含的上下文无关语言L都能由这样一种文法产生,其生成式的形式都是A → a,这里A是一个变量,a是一个终极符,而是变量的(可能为空)符号串。
Greibach范式文法的每个句子的推导步数等于句子的长度。
4/10/2018
5
计算机科学的数学基础
先天歧义的CFL的存在
考虑语言
L = L1∪L2,
其中:
L1={anbncmdm∣n 1, m 1},
L2={anbmcmdn∣n 1, m 1}。
L1
L2
4/10/2018
6
计算机科学的数学基础
先天歧义的CFL的存在
若任何生成L的文法一定有两个完全不同的部分来分别生成L1与L2。
L1 = L(G1)
L2 = L(G2)
L3={dn∣n 1}
那么L3中的句子既能用G1生成又能用G2生成,因而会是歧义的。
考虑L1与L2的交集部分L3。
4/10/2018
7
计算机科学的数学基础
CFG的变量一定是递归的
引理4.6:设G为无歧义CFG,则可有效地构造等价的无歧义的CFG G,使得G是简化的且对A,A S,有派生A *G X1AX2且X1和X2不同为。
证明:简化文法的操作都不会引入歧义性。
假设非递归的变量A,则用所有A生成式的右部替换出现在任何一个生成式的右边的A,然后删去A,则剩下变量均有派生A * X1AX2且X1和X2不同为,除非该文法所定义的语言是有穷的。
显然这一操作同样不会引入歧义性。
因此无歧义的G有满足条件的等价的无歧义的G’。
4/10/2018
8
计算机科学的数学基础
L的无歧义文法有两个部分
证明:假设L无歧义,则可以构造L的一个满足引理4.6的G。
文法G满足下列性质:则
⒈若A * X1AX2, X1和X2都仅含一种符号;
⒉若A * X1AX2, X1和X2所含符号不同。
⒊若A * X1AX2, |X1|= |X2|。
⒋若若A * X1AX2,且有A * X3AX4,则X1和X3、X2和X4所含符号相同。
4/10/2018
9
计算机科学的数学基础
L的无歧义文法有两个部分
⒌X1和X2必是下列四种情形之一:
⑴ X1含a而X2含b;
⑵ X1含a而X2含d;
⑶ X1含b而X2含c;
⑷ X1含c而X2含d。
A Cab
A Cad
A Cbc
A Ccd
⒍d中的符号,便不能含有Cad或Cbc中的符号,反之亦然。
d中变量,则必产生L1的句子。若派生含有Cad或Cbc中变量,则必产生L2的句子。
4/10/2018
10
计算机科学的数学基础
内容来自淘豆网www.taodocs.com转载请标明出处.