编译原理记录2——状态转换图 有穷自动机

状态转换图

状态转换图

  • 状态:表示在识别词素的过程中可能出现的情况
    1. 状态看作是已处理部分的总结
    2. 某些状态为接受状态或最终状态,表明已找到词素
    3. 加上*的接受状态表示最后读入的符号不在词素中
    4. 开始状态用start边表示
  • 边(edge):从一个状态指向另一个状态;边的标号是一个或者多个符号。
  • 状态转换图示例:
    在这里插入图片描述

有穷自动机

  • 本质上等价于状态转换图,分为两类:
  • 不确定的有穷自动机(Nondeterministic Finite Automaton, NFA)
  • 确定的有有穷状态自动机(Deterministic Finite AUtomaton, DFA)
  • NFA和DFA的异同:
    1. NFA:一个符号标记离开同一状态的多条边,可以有边的标号是ε.
    2. DFA:对于每个状态和字母表中的每个字符,有且仅有一条离开该状态、以该符号为标号的边。没有标记为ε的边。
    3. 都可以识别正则语言,有等价性

NFA

组成:

  • 一个有穷状态集合S
  • 一个输入符号集合Σ
  • 转换函数:对每个状态和Σ∪{ε}中的符号,给出相应的后继状态集合
  • 一个状态S0被指定为开始状态
  • S的一个子集F被指定为接受状态

例子
在这里插入图片描述

DFA

一个NFA被称为DFA,如果:

  1. 没有ε之上的转换动作
  2. 对于每个状态s和每个输入符号a,有且只有一条标号为a的边

可以高效判断一个串是否能被一个DFA接受
每个NFA都有一个等价的DFA

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值