当前课程知识点:软件理论基础 >  第十一章 上下文无关语言的性质 >  11.3 CFL的闭运算性质 >  Video

返回《软件理论基础》慕课在线视频课程列表

Video在线视频

下一节:Video

返回《软件理论基础》慕课在线视频列表

Video课程教案、知识点、字幕

欢迎同学们来到《软件理论基础》MOOC课堂

现在介绍上下文无关语言性质的第三部分

上下文无关语言的闭运算性质

在之前讲到了

怎样去判定一个语言是上下文无关语言

要么是把它的文法

上下无关文法给出来

要么把它的下推自动机给出来

这个语言就是一个上下文无关语言

是不是任何一个语言

都按这种判定呢?

有时候可以通过语言本身的性质

来推导它,这样更容易些

如同之前讲正则语言的

闭运算性质一样

对上下文无关语言

也有一些基本运算

这些运算包括并、闭包、连接、反转

首先看上下文无关语言的并

L假设是一个上下文无关语言

M也是一个上下文无关语言

它们的并是不是还是一个上下文无关语言呢?

有下面的定理

如果L和M它们都是上下文无关语言

它们的并也是一个上下文无关语言

这跟正则语言的并运算是类似的

大家回顾一下

当时讲正则语言并的时候

是利用两个自动机

证明这个性质的

现在讲上下文无关语言

就不用下推自动机

用另外一种方法

首先看一个例子

假设给了这个语言

a的n次方,b的n次方

它的文法可以这样来产生

再给另外一个语言ww的反转

它的文法是这样的

这个语言对应上下无关文法

这两个语言的并

怎么把这个并语言

它的文法给出来呢?

只需要增加一个开始变量S

增加产生式:S产生S1

再增加一个产生式:S产生S2

然后把这两个文法放在下面

就得到这个并语言的上下无关文法

一般的上下文无关语言

也可以这样处理

假设一般的上下文无关语言L1、L2

它们对应的上下无关文法是G1和G2

它们的开始变量

L1对应的文法的开始变量是S1

G2的开始变量是S2

下面讨论这两个语言的并

增加一个开始变量S

然后再增加两个产生式

S产生S1

S产生S2

再把G1文法放在下面

G2文法产生式放在下面

这样得到了新的一个文法

就是并语言的文法

这证明非常简单

就得到任何两个上下文无关语言

它们的并仍然是一个上下文无关语言

再看

上下文无关语言的闭包

主要是指“*”闭包和“+”闭包

假设L是一个上下文无关语言

它的“*”闭包和“+”闭包

是不是还是上下文无关语言呢?

有这样的定理

L是一个上下文无关语言

这两类闭包都是上下文无关语言

看一个例子

L1是前面给的一个语言

a的n次方、b的n次方

它的文法是这样的

讨论它的“*”闭包

这个语言的*闭包

只需要增加一个开始变量S1

增加两个产生式: S1产生SS1和S1产生ε

再把这个文法的产生式放在下面

这样得到的文法

就是这个语言“*”闭包它的文法

一般情况下,假设L

是一个上下文无关语言

它对应的上下无关文法是G

开始变量是S

讨论这个语言的“*"闭包L*

只需要增加一个开始变量S1

再增加两个产生式: S1产生SS1和S1产生ε

再把原来的文法G 的产生式放在下面

构成了一个新的文法,就是

L*的上下无关文法

因此,对任何一个上下文无关语言

它的"*"闭包仍然是上下文无关语言

对"+"闭包类似证明

再看上下文无关语言的连接

假设L、M都是上下文无关语言

它们的连接是不是还是上下文无关语言?

定理

上下文无关语言的连接依然是上下文无关语言

例子

这是前面给的语言

它们对应的文法

它们的连接得到的语言

只要增加一个开始变量S

增加一个产生式:S产生S1S2

然后把这产生式放在下面

得到的文法就是

两个语言连接的语言

的上下无关文法

对一般的情形

L1、L2,假设它们是上下文无关语言

对应的文法分别是G1、G2

开始变量分别是S1、S2

这两个语言的连接

我需要增加一个开始变量

增加一个产生式:S产生S1S2

然后把G1和G2

文法的产生式放在下面

构成的新文法

就是两个语言连接的上下无关文法

这就证明了两个上下文无关语言

它们的连接得到的语言依然是上下文无关语言

最后,看上下文无关语言的反转

前面已经定义了一个语言的反转

假设L是一个上下文无关语言

它的反转是不是还是一个上下文无关语言呢?

结论是肯定的

上下文无关语言的反转也是上下文无关语言

证明这个结论

是利用构造的方法

假设L是上下文无关语言

对应的上下无关文法G是这类种形式

通过G构造另外一个文法G的反转

就是GR

这个文法变量跟G的变量一样

终结符集合也是一样

开始变量跟它是一样

只是产生式发生了一些改变

P的反转

P的反转是根据P构造的

只要P中有:A产生α

P的反转就有:A产生αR

也就是α的反转

这个串的反转

这样,得到的文法GR

可以证明,这个文法的语言

就是原来语言L的反转

证明很简单

大家可以做练习完成

这节介绍了

上下文无关语言的几个基本运算

并、连接、闭包、反转

上下文无关语言对这些运算都是封闭的

这节内容介绍完毕

谢谢大家

软件理论基础课程列表:

第一章 基础知识

-1.1 概要

--第一节

-1.2 数学基础

--Video

-1.3 图

--Video

-1.4 证明方法

--Video

-1.5 语言基础

--Video

-1.6 语言运算

--Video

-习题--作业

第二章 确定有限自动机

-2.1 确定有限自动机的概念

--Video

-2.2 确定有限自动机的定义

--Video

-2.3 扩展转移函数

--Video

-2.4 正则语言

--Video

-2.5 DFA构造

--Video

-习题--作业

第三章 非确定有限自动机

-3.1 非确定有限自动机的概念

--Video

-3.2 e转移

--Video

-3.3 非确定有限自动机的定义

--Video

-3.4 扩展转移函数

--Video

-3.5 等价性证明

--Video

-3.6 文本搜索

--Video

-习题--作业

第四章 正则表示

-4.1 单一终结状态的NFA

--Video

-4.2 正则语言的运算性质

--Video

-4.3 正则表示和语言

--Video

-4.4 正则表示和正则语言

--Video

-4.5 正则语言的同态

--Video

-4.6 正则表示的代数定律

--Video

-习题--作业

第五章 正则文法和正则语言

-5.1 文法

--Video

-5.2 线性文法

--Video

-5.3 正则文法与正则语言

--Video

-5.4 自动机的积

--Video

-习题--作业

第六章 正则语言的性质与DFA优化

-6.1 基本问题

--Video

-6.2 泵引理

--Video

-6.3 非正则语言的判定 1

--Video

-6.4 非正则语言的判定 2

--Video

-6.5 DFA的优化 1

--Video

-6.6 DFA的优化 2

--Video

-习题--作业

第七章 上下文无关文法和推导

-7.1 上下文无关文法

--Video

-7.2 规约和推导

--Video

-7.3 语法分析树

--Video

-7.4 规约、推导和语法分析树之间的关系

--Video

-7.5 上下文无关语言

--Video

-习题--作业

第八章 CFG的应用与文法的二义性

-8.1 CFG的应用

--Video

-8.2 CFG的转化

--Video

-8.3 文法二义性

--Video

-8.4 二义性的消除方法

--Video

-8.5 CFG的构造方法

--Video

-8.6 CFG的构造实例

--Video

-第八章 CFG的应用与文法的二义性--习题

第九章 下推自动机

-9.1 PDA介绍

--Video

-9.2 PDA的定义

--Video

-9.3 PDA的即时描述

--Video

-9.4 PDA的语言

--Video

-9.5 PDA与CFG的关系

--Video

-习题--作业

第十章 下推自动机与CFG化简规范

-10.1 确定下推自动机

--Video

-10.2 DPDA与其他语言的关系

--Video

-10.3 终态型DPDA和空栈型DPDA

--Video

-10.4 消除无用符号

--Video

-10.5 消除e产生式

--Video

-10.6 消除单一产生式

--Video

-10.7 CFG的化简与Chomsky范式

--Video

-习题--作业

第十一章 上下文无关语言的性质

-11.1 CFL的必要条件

--Video

-11.2 CFL的Pumping引理

--Video

-11.3 CFL的闭运算性质

--Video

-11.4 CFL的同态性质

--Video

-11.5 CFL的交运算

--Video

-11.6 CFL的判定性质

--Video

-习题--作业

第十二章 Turing机

-12.1 图灵机的介绍

--Video

-12.2 图灵机的定义

--Video

-12.3 图灵机的即时描述

--Video

-12.4 图灵机的计算

--Video

-12.5 图灵机的编程技术

--Video

-习题--作业

第十三章 图灵机的扩展

-13.1 Turing理论

--Video

-13.2 图灵机带的扩展

--Video

-13.3 图灵机移动的扩展

--Video

-13.4 受限图灵机

--Video

-13.5 图灵机与其他自动机

--Video

-习题--作业

第十四章 不可判定问题

-14.1 图灵机编码

--Video

-14.2 对角线语言与通用语言

--Video

-14.3 图灵机语言的性质

--Video

-14.4 判定问题和语言

--Video

-14.5 计算复杂性问题

--Video

-第十四章 不可判定问题--习题

第十五章 自动机及应用

-15.1 时间自动机

--Video

-15.2 Buchi自动机

--Video

-15.3 软件形式化验证

--Video

-15.4 模型检测方法

--Video

-15.5 M3C模型检测系统

--Video

-习题--作业

期中考试

-期中考试

Video笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。