当前位置: 首页>編程日記>正文

形式语言与自动机第二课

形式语言与自动机第二课

形式语言与自动机第二课

语言以及文法

主要内容:

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

字母表与字符串

字母表

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

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

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

字母表的∗*闭包:T∗=T0∪T1∪T2......T^*=T^0\cup T^1\cup T^2......T=T0T1T2......:所有字符串和空串的集合
+++闭包:T+=T1∪T2∪T3......T^+=T^1\cup T^2\cup T^3......T+=T1T2T3......:所有字符串(不包括空串)的集合
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代表含有iiiaaa的字符串
  • 字符串的连接
  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^*LT

空语言:Φ\PhiΦ

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

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

  • 语言的幂

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

文法(重点)

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

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

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

文法就是元语言

BNF(巴科斯范式)

BNF范式一般作为元语言

一种BNF对标识符的定义:

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

Chomsky文法体系(重点)

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

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

N={I、L、D}N=\{I、L、D\}N={ILD}
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 NSN

推导、句型

  • 直接推导
    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)^*(NT)的字符串,则α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)^*(NT)的字符串,且α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\alphaSGαα∈(N∪T)∗\alpha\in(N\cup T)^*α(NT)
    句型可能包含非终结符

  • 句子
    wwwGGG的句子<=>S→G∗wS\rightarrow^*_GwSGww∈T∗w\in T^*wT
    句子不包含非终结符

句型包含句子

  • 文法产生的语言
    由文法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)={wwT,SGw}
    即句子的集合:必然由终结符组成,必然由起始符S推导

分类(重点)

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

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

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

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

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

例子
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:AABAB→CAABAB\rightarrow CAABABCAABA→dA\rightarrow dAdB→aB\rightarrow aBaC→bC\rightarrow bCb
是上下文有关文法

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

总结

形式语言与自动机第二章


https://www.fengoutiyan.com/post/14828.html

相关文章:

  • 形式语言与自动机答案
  • 形式语言与自动机理论第三版
  • 形式语言学与自动机原理
  • 形式语言与自动机和编译原理
  • 形式语言与自动机蒋宗礼答案
  • 形式语言和自动机
  • 形式语言与自动机是什么
  • 形式语言与自动机学啥的
  • 鏡像模式如何設置在哪,圖片鏡像操作
  • 什么軟件可以把圖片鏡像翻轉,C#圖片處理 解決左右鏡像相反(旋轉圖片)
  • 手機照片鏡像翻轉,C#圖像鏡像
  • 視頻鏡像翻轉軟件,python圖片鏡像翻轉_python中鏡像實現方法
  • 什么軟件可以把圖片鏡像翻轉,利用PS實現圖片的鏡像處理
  • 照片鏡像翻轉app,java實現圖片鏡像翻轉
  • 什么軟件可以把圖片鏡像翻轉,python圖片鏡像翻轉_python圖像處理之鏡像實現方法
  • matlab下載,matlab如何鏡像處理圖片,matlab實現圖像鏡像
  • 圖片鏡像翻轉,MATLAB:鏡像圖片
  • 鏡像翻轉圖片的軟件,圖像處理:實現圖片鏡像(基于python)
  • canvas可畫,JavaScript - canvas - 鏡像圖片
  • 圖片鏡像翻轉,UGUI優化:使用鏡像圖片
  • Codeforces,CodeForces 1253C
  • MySQL下載安裝,Mysql ERROR: 1253 解決方法
  • 勝利大逃亡英雄逃亡方案,HDU - 1253 勝利大逃亡 BFS
  • 大一c語言期末考試試題及答案匯總,電大計算機C語言1253,1253《C語言程序設計》電大期末精彩試題及其問題詳解
  • lu求解線性方程組,P1253 [yLOI2018] 扶蘇的問題 (線段樹)
  • c語言程序設計基礎題庫,1253號C語言程序設計試題,2016年1月試卷號1253C語言程序設計A.pdf
  • 信奧賽一本通官網,【信奧賽一本通】1253:抓住那頭牛(詳細代碼)
  • c語言程序設計1253,1253c語言程序設計a(2010年1月)
  • 勝利大逃亡英雄逃亡方案,BFS——1253 勝利大逃亡
  • 直流電壓測量模塊,IM1253B交直流電能計量模塊(艾銳達光電)
  • c語言程序設計第三版課后答案,【渝粵題庫】國家開放大學2021春1253C語言程序設計答案
  • 18轉換為二進制,1253. 將數字轉換為16進制
  • light-emitting diode,LightOJ-1253 Misere Nim
  • masterroyale魔改版,1253 Dungeon Master
  • codeformer官網中文版,codeforces.1253 B
  • c語言程序設計考研真題及答案,2020C語言程序設計1253,1253計算機科學與技術專業C語言程序設計A科目2020年09月國家開 放大學(中央廣播電視大學)
  • c語言程序設計基礎題庫,1253本科2016c語言程序設計試題,1253電大《C語言程序設計A》試題和答案200901
  • 肇事逃逸車輛無法聯系到車主怎么辦,1253尋找肇事司機