当前课程知识点:软件理论基础 >  第一章 基础知识 >  1.5 语言基础 >  Video

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

Video在线视频

下一节:Video

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

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

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

现在介绍第五节

语言基础

语言的构造

首先需要一个字母表

字母表有哪些呢?

譬如,英文字母小写的 a、b、c

大写的 A、B、C,等等

英文标点符号

在这里算是字母表

汉字、化学元素表中符号

都是这里的一些字母表

比如,还有 ∑ = {a,n,y,任意},等等

都表示字母表

在字母表

我们通常用小写字母 a、b、c 表示它的字母

由字母可以构造字符串

怎么构造呢?

假设给了字母表 ∑ = {a,b}

字母可以重复出现

构成有限的串

像 a、ab、abba、baba,等等

是有限个字母构成的串

叫字符串

这是基于字母构成的串

通常用小写字母 u、v、w

表示字符串

u=ab

v=bbbaaa

w=abba,等等

都是表示字母上的串

有了字符串

就可以讨论字符串的一些运算

假如给了字符串 w = a1a2…an

v 字符串是 b1b2…bn

可以举出具体的串

abba、bbbaaa

字符串的第一个运算

也是前面提到的一个运算

连接运算

是把 w 字符串和 v 字符串

无缝地放在一起

构成了一个新的字符串

譬如,给了这两个具体的字符串

它们的连接得到这新的字符串

这是字符串的第一个运算

假设给了字符串 w

比如说,a1a2…an

具体的一个字符串是这样

给第二个字符串的运算--反转

反转是把原来的字符串

它的顺序完全颠倒

原来 an 放在第 n 个位置

改成第一个

n-2 个,改成第二个位置

一直到 a2,改成倒数第二个

a1 成了最后一个

这样次序得到的串

叫 w 的反转

用 w^R 表示

这个字符串,它的反转得到 bbbaaababa

给了w = a1a2…an

有 n 个字符

w 的长度

是它的字符的个数,等于 n

比如说,abba 含 4 个字符

它的长度等于 4

aa 含两个字符,它的长度等于 2

a 只含一个字符,等于 1

字符串的长度

对连接运算,满足性质:

u 和 v 的连接 uv 的长度

等于 u 的长度加 v 的长度

这一点容易验证

譬如,u = aab

u 的长度是 3

v = abaab

v 的长度等于 5

这两个串的连接

u 和 v 的连接,得到这个串

它的长度

等于8

也就是 u 的长度加 v 的长度

3 加 5 等于 8

定义一个特殊的串

叫空串,用 ε 表示

有的书记成 λ

是不含任何字符的串

这个串非常特别

空串的长度等于 0

它存在

空串满足什么性质呢?

任何一个字符串 w

空串跟它左连接、跟它右连接

都不改变这个串

εw = wε = w

这个性质说明,在连接运算

空串是一个单位元

譬如,ε 跟 abba 连接

一定等于 abba

abba 跟 ε 连接,完全是一样的

这是空串

下面介绍子串

字符串的子串,是字符串中

一些部分的字符

是连续的字符

构成一个字符串

给字符串 abbab

这个串中,ab

是它的一部分

是整 abba 的子串

abba 是这个串中的一部分

它也是这个串的子串

单个 b

是子串

bbab 是子串

当然,它本身也是它自己的子串

在这子串内,有一类特殊的子串

w 表示为 uv

u 叫做 w 的前缀

v 叫做 w 的后缀

譬如,给了串 abbab

这个串的前缀有哪些呢?

空串

a、ab、abb、abba

包括它自己,都是 w 这串的前缀

这个串的后缀有哪些呢?

它自己、bbab、bab、ab、b、空串

都是这个字符串的后缀

连接运算中

如果这些串都是相同的

我们可以定义串的幂运算

譬如,有 n 个串,都是 w

它们作连接时

可以记为 w^n

(abba)^2,表示 abba 与 abba

两个相同串的连接

任何串的零次方

等于空串,这是规定

像 abba 零次方,等于空串

下面介绍字符串的“星”运算

或者叫“*”闭包

给字母表 ∑

∑* 表示

这个字母表中

所有有限的字母

或者有限的字符,构成的串的集合

叫做字母表的“*”闭包

给了字母表 {a,b},两个字母

由这两个字母生成

所有的有限字符串

有哪些呢?

像空串、单个 a

单个 b、aa、ab、ba、bb

这些字母可以重复出现

所有构成的有限串, 这是一个无穷集合

还有一个运算,“正”闭包

给了一个字母表

它的 * 闭包

* 闭包集合刚才定义了

除去空串构成的集合

叫做这个字母表的“正”闭包

假设给了字母表 {a,b}

“*”闭包是这表示

它的“正闭”包是“*”闭包除去空串

就得到这样的集合

是一个无限集

比它的“*”闭包只少了一个空串

这节我们介绍了语言

最基本的元素--字母表

以及字母表构成的字符串

还有字符串的一些运算

这节内容介绍完毕

谢谢大家!

软件理论基础课程列表:

第一章 基础知识

-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笔记与讨论

也许你还感兴趣的课程:

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