形式语言与自动机第二课

语言以及文法

主要内容:

  1. 形式语言有关术语
  2. 文法的定义、分类

字母表与字符串

字母表

  • 字母表:字符的有限集合(不允许出现相同的字符)
    常用TTT、∑\sum∑表示

  • 字母表的幂运算
    归纳定义:

  1. T0={ϵ}T^0=\{\epsilon\}T0={ϵ}
  2. x∈Tn−1,a∈Tx\in T^{n-1}, a\in Tx∈Tn−1,a∈T=>ax∈Tnax\in T^nax∈Tn
  3. TnT^nTn的元素只能由1、2生成

字母表的∗*∗闭包:T∗=T0∪T1∪T2......T^*=T^0\cup T^1\cup T^2......T∗=T0∪T1∪T2......:所有字符串和空串的集合
+++闭包:T+=T1∪T2∪T3......T^+=T^1\cup T^2\cup T^3......T+=T1∪T2∪T3......:所有字符串(不包括空串)的集合
T∗=T+∪{ϵ}T^*=T^+\cup\{\epsilon\}T∗=T+∪{ϵ}
T+=T∗−{ϵ}T^+=T^*-\{\epsilon\}T+=T∗−{ϵ}

字符串

  • 字符串:字母表中的字符构成的序列(常记为u、v、w、x、y、z)
  1. 使用 ϵ\epsilonϵ 表示空串
  2. 字符串www的宽度记作∣w∣|w|∣w∣
  3. aia^iai代表含有iii个aaa的字符串
  • 字符串的连接
  1. 写法:xyxyxy
  2. 性质:(xy)z=x(yz)(xy)z=x(yz)(xy)z=x(yz)、ϵx=xϵ=x\epsilon x = x\epsilon = xϵx=xϵ=x、∣xy∣=∣x∣+∣y∣|xy|=|x|+|y|∣xy∣=∣x∣+∣y∣

空串是任何字符串的前缀、后缀、子串

  • 字符串的逆:w‾\overline{w}w

语言

语言是字母表的T∗T^*T∗的子集=>语言是集合
L⊂T∗L\subset T^*L⊂T∗

空语言:Φ\PhiΦ

对于集合的运算可以应用于对语言的计算

  • 语言的积:
    语言的积是语言中的字符串相连接所构成的集合
    语言的积不可交换:L1L2!=L2L1L_1L_2 != L_2L_1L1​L2​!=L2​L1​

  • 语言的幂

  1. L0={ϵ}L^0=\{\epsilon\}L0={ϵ}
  2. Ln=LLn−1L^n=LL^{n-1}Ln=LLn−1

文法(重点)

文法是定义语言的数学模型
当语言L是无限集合时:

  1. 文法产生系统,由文法产生语言的句子
  2. 机器识别系统,当一个字符串能被一个语言的识别系统识别,则属于该语言,否则不属于该语言

元语言:讨论对象语言的语言
对象语言:被讨论的语言

文法就是元语言

BNF(巴科斯范式)

BNF范式一般作为元语言

一种BNF对标识符的定义:

  • <数字>::=0∣1∣2∣...9<数字>::=0|1|2|...9<数字>::=0∣1∣2∣...9
  • <字母>::=A∣B∣C∣...Z∣a∣b∣...z<字母>::=A|B|C|...Z|a|b|...z<字母>::=A∣B∣C∣...Z∣a∣b∣...z
  • <标识符>::=<字母>∣<标识符><字母>∣<标识符><数字><标识符>::=<字母>|<标识符><字母>|<标识符><数字><标识符>::=<字母>∣<标识符><字母>∣<标识符><数字>

Chomsky文法体系(重点)

将::=::=::=改为→\rightarrow→表示可被代替
使用I、L、DI、L、DI、L、D表示标识符、字母、数字

==>
I→LI\rightarrow LI→L
I→ILI\rightarrow ILI→IL
I→IDI\rightarrow IDI→ID
L→a∣b...∣zL\rightarrow a|b...|zL→a∣b...∣z
D→0∣1...∣9D\rightarrow 0|1...|9D→0∣1...∣9
一个文法的生成式集合

N={I、L、D}N=\{I、L、D\}N={I、L、D}
T={a,b,c,...,z,0,1,2,...,9}T=\{a, b, c, ..., z, 0, 1, 2, ..., 9\}T={a,b,c,...,z,0,1,2,...,9}
P={I,La,...,D0,...,D9}P=\{I, L_a, ..., D_0, ..., D_9\}P={I,La​,...,D0​,...,D9​}
S=IS=IS=I

生成式集合是文法的核心

在这个体系中

  1. 任何一种文法必须包含两个不同的有限符号的集合,即非终结符集合N(不会在句子中出现)、终结符集合T,还有生成式集合与起始符
  2. 形式规则的有限集合P(生成式集合):产生语言句子的规则
  3. 句子:仅由终结符产生的字符串。它们必须从一个起始符S开始,不断使用P中的生成式进行推导

G=(N,T,P,S)G=(N,T,P,S)G=(N,T,P,S)
GGG:文法
NNN:非终结符的有限集合
TTT:终结符的有限集合,N、T无交集
PPP:形式为α→β\alpha\rightarrow\betaα→β的有限集合,α\alphaα是N、T的组合,但是不能是空串,β\betaβ是N、T的组合
SSS:起始符,S∈NS\in NS∈N

推导、句型

  • 直接推导
    G=(N,T,P,S)G=(N,T,P,S)G=(N,T,P,S),A→βA\rightarrow\betaA→β 是PPP的生成式,α、γ\alpha、\gammaα、γ是(N∪T)∗(N\cup T)^*(N∪T)∗的字符串,则αAγ→αβγ\alpha A\gamma\rightarrow\alpha\beta\gammaαAγ→αβγ,称αAγ\alpha A\gammaαAγ直接推导出αβγ\alpha\beta\gammaαβγ

  • 推导序列
    G=(N,T,P,S)G=(N,T,P,S)G=(N,T,P,S),αi\alpha_iαi​是(N∪T)∗(N\cup T)^*(N∪T)∗的字符串,且αi\alpha_iαi​直接推导处αi+1\alpha_{i+1}αi+1​,称α0=>α1=>α2=>...αn\alpha_0=>\alpha_1=>\alpha_2=>...\alpha_nα0​=>α1​=>α2​=>...αn​为长度为n的推导序列(推导n次),
    α′=αn\alpha'=\alpha_nα′=αn​,α=α0\alpha=\alpha_0α=α0​,α\alphaα推导出α′\alpha'α′写作
    α→G∗α′\alpha\rightarrow_{G}^{*}\alpha'α→G∗​α′
    推导序列长度大于0,记作
    α→G+α′\alpha\rightarrow_{G}^{+}\alpha'α→G+​α′
    推导序列的每一步都产生一个字符串,称之为句型(可能包含终结符也可能包含非终结符)

  • 句型
    α\alphaα是文法GGG的句型<=>S→G∗αS\rightarrow^*_G\alphaS→G∗​α,α∈(N∪T)∗\alpha\in(N\cup T)^*α∈(N∪T)∗
    句型可能包含非终结符

  • 句子
    www是GGG的句子<=>S→G∗wS\rightarrow^*_GwS→G∗​w,w∈T∗w\in T^*w∈T∗
    句子不包含非终结符

句型包含句子

  • 文法产生的语言
    由文法G产生的语言记为L(G)L(G)L(G)
    L(G)={w∣w∈T∗,S→G∗w}L(G)=\{w|w\in T^*, S\rightarrow^*_Gw\}L(G)={w∣w∈T∗,S→G∗​w}
    即句子的集合:必然由终结符组成,必然由起始符S推导

分类(重点)

该体系对生成式的形式作出了一些规定:0型、1型、2型、3型

  • 0型:无限制文法
    对应的语言:递归可枚举语言,等同于图灵机

  • 1型:上下文有关文法
    生成式:α→β\alpha\rightarrow\betaα→β
    其中∣α∣<=∣β∣|\alpha|<=|\beta|∣α∣<=∣β∣,β\betaβ不为空串
    对应的语言:上下文有关语言,不考虑空串,则与线性有界自动机等价

  • 2型:上下文无关文法
    生成式:A→βA\rightarrow\betaA→β,左侧为单个符号,非终结符
    对应语言:上下文无关语言
    对应自动机:下推自动机

  • 3型:正则文法
    分为右线性文法与左线性文法
    A→wBA\rightarrow wBA→wB、A→BwA\rightarrow BwA→Bw
    A、B∈NA、B\in NA、B∈N, w∈T∗w\in T^*w∈T∗
    对应的语言:正则语言
    对应的自动机:有限自动机

例子
G=({A,B,C},{a,b,d},P,A)G=(\{A,B,C\},\{a,b,d\},P,A)G=({A,B,C},{a,b,d},P,A)
P:A→ABP:A\rightarrow ABP:A→AB、AB→CAABAB\rightarrow CAABAB→CAAB、A→dA\rightarrow dA→d、B→aB\rightarrow aB→a、C→bC\rightarrow bC→b
是上下文有关文法

  • 四类文法的关系
  1. 0型:无限制
  2. 1型,左边长度小于等于右边。右边不允许是空串
  3. 2型,左边是非终结符、单个符号
  4. 3型,左边是非终结符、单个字符,右边是wBwBwB、BwBwBw或者www
  5. 1、2、3属于0型
  6. 不含A→ϵA\rightarrow \epsilonA→ϵ的2、3型属于1型
  7. 3型属于2型

总结

形式语言与自动机第二课相关推荐

  1. 【第二章 语言及文法】形式语言与自动机第二章个人总结复习笔记分享!(含文件、持续更新...)

    目录 一.总览 二.2.1 [语言的定义与运算] 2.2 [文法] 2.3 [文法的分类] 说明 网盘链接 参考教材 有用的话请点个赞吧,后续有时间会持续更新. 提示:本文内容全是我一人学习总结而来, ...

  2. 形式语言与自动机——第二章 自动机

    文章目录 第二章 目录 [2.1] 有穷自动机(有限自动机) [2.2] 不确定有穷自动机(NFA) [2.3] 确定的有穷自动机 [2.4] 格局 [2.5] DFA与NFA等效 [2.6] 有ε转 ...

  3. 形式语言与自动机 Part 3.有限自动机

    课程名:形式语言与自动机 作者:Lupinus_Linn 许可证:CC-BY-NC-SA 3.0 创作共用-署名-非商业性-相同方式共享 署名(英语:Attribution,BY):您(用户)可以复制 ...

  4. 形式语言与自动机 Part.4 正则语言,2DFA,MealyMoore机

    课程名:形式语言与自动机 作者:Lupinus_Linn 许可证:CC-BY-NC-SA 3.0 创作共用-署名-非商业性-相同方式共享 署名(英语:Attribution,BY):您(用户)可以复制 ...

  5. 形式语言与自动机 Part.5 上下文无关语言与下推自动机(PDA)

    课程名:形式语言与自动机 作者:Lupinus_Linn 许可证:CC-BY-NC-SA 3.0 创作共用-署名-非商业性-相同方式共享 署名(英语:Attribution,BY):您(用户)可以复制 ...

  6. 形式语言与自动机 Part.6 图灵机

    课程名:形式语言与自动机 作者:Lupinus_Linn 许可证:CC-BY-NC-SA 3.0 创作共用-署名-非商业性-相同方式共享 署名(英语:Attribution,BY):您(用户)可以复制 ...

  7. 形式语言与自动机 Part.1绪论, Part.2 语言与文法

    课程名:形式语言与自动机 作者:Lupinus_Linn 许可证:CC-BY-NC-SA 3.0 创作共用-署名-非商业性-相同方式共享 署名(英语:Attribution,BY):您(用户)可以复制 ...

  8. 【第三章 有限自动机与右线性文法】形式语言与自动机第三章个人总结复习笔记分享!(含文件、持续更新...)

    目录 前言 一.总览 二.章节展示 3.1 [有限自动机] 3.2 [不确定的有限自动机] 3.3 [DFA和NFA的等效] 3.4 [有ε转换的不确定的有限自动机] 3.5 [正则集与正则式] 3. ...

  9. 形式语言与自动机学习复述笔记

    形式语言与自动机学习复述笔记 文章目录 形式语言与自动机学习复述笔记 本文说明 文法 文法的乔姆斯基分类 有穷自动机 正则语言 正则文法 关系 正则表达式 正则表达式RE->$\epsilon$ ...

  10. 手把手教你写电商爬虫-第二课 实战尚妆网分页商品采集爬虫

    系列教程 手把手教你写电商爬虫-第一课 找个软柿子捏捏 如果没有看过第一课的朋友,请先移步第一课,第一课讲了一些基础性的东西,通过软柿子"切糕王子"这个电商网站好好的练了一次手,相 ...

最新文章

  1. 第五章ThinkingInJava
  2. 重构当当网交易系统!
  3. [转]如何切换多个GitHub账号
  4. 前端学习(224):iconfont矢量库
  5. Apache Nifi 入门与进阶 GitChat连接
  6. ASP.NET中共有哪几种类型的控件?其中,HTML控件、HTML服务器控件和WEB服务器控件之间有什么区别
  7. K8s中Pod健康检查源代码分析
  8. c#后台如何导出excel到本地_小程序导出数据到excel表,借助云开发后台实现excel数据的保存...
  9. Julia 创始人访谈:简单机器学习任务可与 Python 媲美,复杂任务胜过 Python
  10. java excel插入列_Java 插入、隐藏/显示、删除Excel行或列
  11. 2019写给对象的话_数组方法写给女友的一系列 JS 数组操作(建议收藏 | 内附思维导图)...
  12. 30个灵感来自大自然的国外网页设计作品欣赏
  13. U8服务器怎么修改会计制度,用友GRP-U8乡镇财政精细化管理新会计制度操作手册..doc...
  14. 如何让U盘对病毒免疫
  15. 计算机界十位顶级人物!
  16. O2OA产品核心能力介绍:门户管理
  17. 苹果计算机开机进入安全模式,iphone进入安全模式及退出安全模式的方法
  18. 文字识别——检测部分 CTPN论文翻译
  19. Code First From DataBase_se7en3_新浪博客
  20. BP神经网络隐藏层的作用,bp神经网络输出层函数

热门文章

  1. mac os android 线刷,Mac系统下使用Fastboot线刷安卓设备
  2. 基于聚合数据的移动联通基站API接口的php完整代码实例
  3. 通过串口波特率计算bit时间
  4. 国内最强Web3D软件WebMax正式版发布
  5. 机器人顶会RSS 2021各奖项出炉,CMU华人博士生摘得最佳论文
  6. c语言卷积交织,卷积编码码率是什么?怎么计算
  7. MATLAB机器人仿真:利用plot3d显示真实三维仿真模型
  8. matlab中plot3,mesh,grid三者画图的区别
  9. 大地测量学基础 | 时间系统
  10. mrpoid模拟器java版_mrpoid模拟器2019下载