计算机数学基础分章介绍,计算机数学基础第四章.ppt

本文档探讨了计算机科学中的上下文无关文法(CFG)及其相关概念,如Chomsky范式和Greibach范式。上下文无关文法在定义语言时,允许产生式右部只包含单一非终结符,不依赖于上下文。无歧义文法是重要的,因为它们不会导致语言解释的不确定性。通过引理和定理,证明了如何构造无歧义的CFG,并讨论了先天歧义的上下文无关语言的存在情况。
摘要由CSDN通过智能技术生成

文档介绍:

计算机数学基础第四章.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 | wT*且S *w}。

4/10/2018

2

计算机科学的数学基础

上下文无关文法的简化

无效符号:1、不出现在任何句型中的符号;2、不能产生终极符号串的符号,

生成式:右部为的生成式。

单元生成式:形为AB的生成式,A, BV。

定理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转载请标明出处.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值