1形式语言

  • 语言:人类所特有的用来表达意思、交流思想的工具,是一种特殊的社会现象,由语音、词汇和语法构成一定的系统。
  • 语言描述的三种途径
    • 穷举法 — 只适合句子数目有限的语言。
    • 语法描述 — 生成语言中合格的句子。
    • 自动机 — 对输入的句子进行检验,区别哪些是语言中的句子,哪些不是语言中的句子
  • 形式语言:是用来精确地描述语言(包括人工语言和自然语言)及其结构的手段。形式语言学 也称 代数语言学
    • 以重写规则 αβ\alpha\rightarrow\beta的形式表示,其中, α,β\alpha,\beta 均为字符串。顾名思义:字符串 α\alpha 可以被改写成 β\beta 。一个初步的字符串通过不断地运用重写规则,就可以得到另一个字符串。通过选择不同的规则并以不同的顺序来运用这些规则,就可以得到不同的新字符串。

形式语言

  • 形式语法:四元组G=(NΣ,P,S)G=(N、\Sigma,P,S)
    • N:非终结符号(变量
    • Σ\Sigma: 终结符号
    • NΣ=;V=NΣ:N \cap \Sigma=\emptyset;\\V=N\cup\Sigma:词汇表
    • P:一组重写规则的有限集合:P={αβ},αβVαSN(P=\{\alpha\rightarrow\beta\},其中\alpha,\beta是V中元素构成的串,但\alpha至少有一个非终结符号:S\in N(初始符或句子符号)
    • eg:
    • G=({ A,S},{0,1},P,S)
    • P:S0A1,0A00A1,A1P:S\rightarrow0 A 1,\\0 A\rightarrow00A1,\\A\rightarrow1

推导

  • 推导:

    • G=(NΣ,P,S)G=(N、\Sigma,P,S)施一个文法,在(NΣ)(N\cup\Sigma)^*上定义关系=>G(\stackrel{G}{=>}(直接派生或推导):
    • *推导:n>=1
    • +推导:n>=0
    • 推导:n=1
      nlp3-有限自动机FLandFA
      nlp3-有限自动机FLandFA
  • 最左推导

  • 最右推导(规范推导
    nlp3-有限自动机FLandFA

句型、句子、语言

  • 句型与句子
    • 一些特殊类型的符号串G=(NΣ,P,S)G=(N、\Sigma,P,S)的句子形式(句型):
      1. S是一个句子形式
      2. 句型推出的也是一个句型
        • αβγβδpαδγ\alpha\beta\gamma是一个句型,\\且有\beta\rightarrow\delta是p的产生式,\\则\alpha\delta\gamma也是一个句型
    • 句子:不含有非终结符的句型
    • 语言:L(G),G产生的所有句子
      • nlp3-有限自动机FLandFA

文法

  • 0型文法(无限制重写系统,无约束文法):P:αβ,P:\alpha\rightarrow\beta,字符串(理论上的,无用处
  • 1型文法(上下文有关文法CSG):P:αAβαγβAN,α,γ,β(NΣ),γifxy,x(NΣ)+,y(NΣ),yx(P:\alpha A\beta\rightarrow \alpha \gamma \beta\\A\in N,\alpha, \gamma ,\beta\in(N\cup \Sigma)^*,且\gamma至少包含一个字符\\另一种定义:if x\rightarrow y,x\in(N\cup \Sigma)^+,y\in(N\cup \Sigma)^*,并且|y|\geq|x|(越推越长)
  • 2型文法(上下文无关文法CFG):P:Aα,AN,α(NΣ)P:A\rightarrow \alpha,A\in N,\alpha\in(N\cup \Sigma)^*
  • 3型文法(正则文法):P:ABxAx,A,BNxΣ(线AxB(线P:A\rightarrow Bx|A\rightarrow x,A,B\in N,x\in \Sigma(左线性正则文法\\A\rightarrow xB(右线性正则文法)
  • 0-3,约束越来越大:L(G3)L(G2)L(G1)L(G0)L(G3)\subseteq L(G2)\subseteq L(G1)\subseteq L(G0)
    • 显然,每一个正则文法都是上下文无关文法,每一个上下无关文法都是上下文有关文法,而每一个上下文有关文法都是0型文法
  • 判别文法类别时,倾向于判别为约束最大的:
    • 如果一种语言能由几种文法所产生,则把这种语言称为在这几种文法中受限制最多的那种文法所产生的语言。
      nlp3-有限自动机FLandFAnlp3-有限自动机FLandFAnlp3-有限自动机FLandFAnlp3-有限自动机FLandFA

派生树与二义性

  • 2型文法(上下文无关)CFG 产生的语言句子的派生树表示CFGG=(NΣ,P,S)G=(N、\Sigma,P,S)产生一个句子的派生树由如下
    步骤构成:
    • (1) 对于xNΣx\in N \cup \Sigma 给一个标记作为节点, S 作为树的根节点。
    • (2) 如果一个节点的标记为 A,并且它至少有一个除它自身
      以外的后裔,则ANA\in N
    • (3) 如果一个节点的标记为 A,它的 k ( k > 0) 个直接后裔节 点按从左到右的次序依次标记为 A1, A2, …, Ak,则 A -> A1A2…Ak 一定是 P 中的一个产生式
  • 上 下文无关文法的二义性
    • 一个文法 G,如果存在某个句子有不只一棵分析树与之对应,那么称这个文法是二义的
      nlp3-有限自动机FLandFAnlp3-有限自动机FLandFA
      nlp3-有限自动机FLandFAnlp3-有限自动机FLandFAnlp3-有限自动机FLandFA

有限自动机和正则文法

确定的有限自动机DFA

  • 确定的有限自动机M是一个五元组M=(Σ,Q,δ,q0,F)Σ:Qq0Q:FFQδ:Q×ΣQM=(\Sigma,Q,\delta,q_0,F)\\ \Sigma:输入符号的有穷集合\\ Q:状态的有限集合\\ q_0\in Q:初始状态\\ F:终止状态集合,F\subseteq Q\\ \delta:是Q×\Sigma到Q的映射,它支配着有限状态控制的行为,状态转移函数
  • q0aq=δ(q,a)qq从q_0开始(输入头开始在最左边),输入a,q'=\delta(q,a),从q转移到状态q',并将输入头向右移动一个字符
  • 状态变换图如下:

nlp3-有限自动机FLandFAnlp3-有限自动机FLandFA

  • DFA所定义的语言
    • 可接受:x使δ(q0,x)=p,pF,xM如果有一个句子x,使得\delta(q_0,x)=p,p\in F,则x可被M接受
    • KaTeX parse error: Undefined control sequence: \inF at position 23: …x|\delta(q_0,x)\̲i̲n̲F̲\}
  • 确定的:接受一个输入,只会从一个状态转换到另一个状态,不会有其他可能
    nlp3-有限自动机FLandFA

不确定的有限自动机NFA

  • 不确定的有限自动机M是一个五元组M=(Σ,Q,δ,q0,F)Σ:Qq0Q:FFQδ:Q×ΣQ2QM=(\Sigma,Q,\delta,q_0,F)\\ \Sigma:输入符号的有穷集合\\ Q:状态的有限集合\\ q_0\in Q:初始状态\\ F:终止状态集合,F\subseteq Q\\ \delta:是Q×\Sigma到Q的幂集2^Q的映射,状态转移函数–区别在这里
  • 区别:
    • δ(q,a)\delta(q,a)
      • 在DFA中是一个状态
      • 在NFA中是一个状态集合
        nlp3-有限自动机FLandFA
  • 不确定性:δ(q0,0)=q3q0\delta(q_0,0)={q_3,q_0}
  • 关系:设 L 是一个被 NFA 所接受的句子的集合,则存在一个 DFA,它能够接受 L。
    • 由于 DFA 与 NFA 所接受的是同样的链集,所以一般情况下无需区分它们,二者统称为有限自动机 (finite automata, FA)。
    • 可以转化

有限自动机<=>正则文法

  • 正则文法和FA等价
    • G=(VN,VT,P,S)G=(V_N,V_T,P,S)是一个正则文法,则必然存在一个有限自动机M=(Σ,Q,δ,q0,F)M=(\Sigma,Q,\delta,q_0,F),使得T(M)=L(G)
    • 若Ms是一个有限自动机,则必然存在正则文法G,L(G)=T(M)
  • 由正则文法构造有限自动机M:
    1. Σ=VT,Q=VNT,q0=S,T\Sigma=V_T,Q=V_N\cup{T},q_0=S,其中,T是一个新增加的非终结符号
    2. 如果P中有:Sϵ,F={S,T}F={T}S\rightarrow\epsilon,则,F=\{S,T\},否则,F=\{T\}
    3. 如果P中有:Ba,BVN,aVT,Tδ(B,a)B\rightarrow a,B\in V_N,a\in V_T,则T\in\delta(B,a)
    4. 如果P有BaC,BCVN,aVT,Cδ(B,a)B\rightarrow aC,B、C\in V_N,a\in V_T,则C\in \delta(B,a)
    5. 对于每一个aVT,δ(T,a)=a\in V_T,有\delta(T,a)=\empty
      nlp3-有限自动机FLandFAnlp3-有限自动机FLandFAnlp3-有限自动机FLandFA
  • 由有限自动机M构造正则文法G:
    1. VN=Q,VT=Σ,S=q0V_N=Q,V_T=\Sigma,S=q_0
    2. Cδ(B,a),B,CQ,aΣP:BaC如果C\in \delta(B,a),B,C\in Q,a\in \Sigma,则P:B\rightarrow aC
    3. Cδ(B,a),B,CF,aΣP:Ba如果C\in \delta(B,a),B,C\in F,a\in \Sigma,则P:B\rightarrow a

相关文章:

  • 2021-11-30
  • 2021-11-29
  • 2021-12-15
  • 2021-12-26
猜你喜欢
  • 2021-09-11
  • 2022-03-05
  • 2021-04-12
  • 2021-05-24
相关资源
相似解决方案