编译原理第三章复习

目录

状态转换图

正规式与正规集

确定有限自动机(DFA)

非确定有限自动机(NFA)

NFA确定化

 确定有限自动机化简

正规文法 

右线性->FA

左线性->FA

FA->右线性 

 FA->左线性

作业:

作业3-1

作业3-2 

 作业3-3

作业3-4


知识点

  • 有限(状态)自动机概述
    • 具有离散 输入 输出系统的一种数学模型
  • 状态转移图与状态转移表
  • 格局
  • DFA
    • DFA定义:M = ( Q , T , δ , q 0 , F ) M = (Q,T,\delta,q_{0},F)M=(Q,T,δ,q0​,F)
      • Q:状态集合
      • T:输入字母表
      • δ \deltaδ:状态转移函数 Q*T=Q
      • q 0 q_{0}q0​:初始状态(单个状态)
      • F FF:终止状态集合
    • 扩展 δ \deltaδ 适合输入字符串 Q ∗ T ∗ = Q Q * T^{*} = QQ∗T∗=Q(注意这里的字符串可能是空串)
    • 被DFA接收的语言L(M),M是定义自动机的符号
  • NFA
    • NFA定义:M = ( Q , T , δ , q 0 , F ) M = (Q,T,\delta,q_{0},F)M=(Q,T,δ,q0​,F)
      • Q:状态集合
      • T:输入字母表
      • δ \deltaδ:状态转移函数 $ Q*T=2^{Q} $
      • q 0 q_{0}q0​:初始状态(单个状态)
      • F FF:终止状态集合
    • 扩展 δ \deltaδ 适合输入字符串 Q ∗ T ∗ = 2 Q Q * T^{*} = 2^{Q}Q∗T∗=2Q(注意这里的字符串可能是空串)
    • 被NFA接收的语言L(M)
  • DFA NFA的等价转化(构造与NFA等价的DFA)
    • 什么是等价?
      • 指给定一个能被DFA(NFA)识别的语言,一定能构造一个NFA(DFA)也能识别该语言
    • 构造的方法
      • 子集构造法
    • 为什么这样构造正确?
  • ϵ − N F A \epsilon-NFAϵ−NFA
    • ϵ − N F A \epsilon-NFAϵ−NFA 和NFA唯一的不同 δ : Q ∗ ( T ∪ { ϵ } ) = 2 Q \delta:Q*(T\cup \{\epsilon\})=2^{Q}δ:Q∗(T∪{ϵ})=2Q
    • ϵ − C L O S U R E \epsilon-CLOSUREϵ−CLOSURE
    • 扩展 δ = δ ′ \delta = \delta'δ=δ′ 适合输入字符串
      • δ ′ ( q , ω ) = \delta'(q,\omega)=δ′(q,ω)=
      • ϵ − C L O S U R E ( q ) , 当 ω = ϵ \epsilon-CLOSURE(q),当\omega=\epsilonϵ−CLOSURE(q),当ω=ϵ
      • ϵ − C l O S U R E ⋅ δ ( δ ′ ( q , ω ′ ) , a ) , 当 ω = ω ′ a \epsilon-ClOSURE · \delta(\delta'(q,\omega'),a),当\omega=\omega'aϵ−ClOSURE⋅δ(δ′(q,ω′),a),当ω=ω′a
      • δ ( q , a ) ! = δ ′ ( q , a ) \delta(q,a) != \delta'(q,a)δ(q,a)!=δ′(q,a)
    • 被ϵ − N F A \epsilon-NFAϵ−NFA接收的语言L(M)
  • DFA NFA ϵ \epsilonϵ-NFA 等价转换
    • D F A ⊆ N F A ⊆ ϵ − N F A DFA \subseteq NFA \subseteq \epsilon-NFADFA⊆NFA⊆ϵ−NFA
    • ϵ − N F A \epsilon-NFAϵ−NFA -> NFA ->DFA
  • 正则集和正则表达式
    • 正则集:正则表达式表达的字符串的集合。正则集本质上是一种语言,是T ∗ T^{*}T∗的子集
    • 运算:
      • 联合(或)
      • 连接
      • *闭包
  • 右线性文法、正则表达式、有限自动机 等价性
    • 结论:
      • 右线性文法产生的语言=右线性语言
      • 正则表达式表达的语言=正则集
      • 右线性语言=正则集=正则语言
      • 识别右线性语言(正则集)的自动机:有限状态自动机(FA)
      • FA有:DFA ,NFA ,e p s i l o n − N F A epsilon-NFAepsilon−NFA ,三者等价
    • 右线性文法与正则表达式
      • 右线性文法->正则表达式
      • 等价性:右线性文法产生的语言都是正则集(即产生的字符串构成的集合都可以被某种正则表达式表达),所有正则集都可以被右线性文法产生
      • 正则集(正则表达式表达的语言)=右线性语言(右线性文法产生的语言)
    • 有限自动机与正则表达式
      • 有限自动机 -> 正则表达式(状态消去法)
      • 正则表达式 -> ϵ − N F A \epsilon-NFAϵ−NFA(归纳构造)
      • 等价性:正则集(正则表达式表达的语言)都能被有限自动机识别,有限自动机识别的语言都是正则集
    • 右线性文法与有限自动机
      • 经过上述讨论,右线性文法与正则表达式等价,正则表达式与有限自动机等价,故右线性文法与有限自动机等价,即右线性文法产生的语言都能被有限自动机识别,有限自动机识别的语言都是有线性文法产生的语言。
        • 右线性文法 -> NFA
        • NFA -> 右线性文法
  • DFA的极小化
    • 找到状态数最小,且和原DFA等价的DFA(注意:等价定义——识别相同语言)
    • 状态等价(不可分),状态可分
    • 不可达状态
    • 填表法

状态转换图

正规式与正规集

 

确定有限自动机(DFA)

非确定有限自动机(NFA)

 

NFA确定化

 

 

 详见作业

例子:

 

 

 

 确定有限自动机化简

 

 例子:

 

正规文法 

右线性->FA

 

 

左线性->FA

 

 

FA->右线性 

 

 

 

 FA->左线性

 

 

 

作业:

作业3-1

 

 

 

 

 

 

 

 

 

作业3-2 

 

 

 

 

 

 作业3-3

 

作业3-4

 

 

 

 

  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值