Unit 3 词法分析: 从正则表达式到有穷自动机

引言:正则表达式有两种基本要素——字符表达式和ε表达式,以及三种基本运算——并、连接和闭包

有穷自动机 (FA: Finite Automata)

正则表达式并不能直接用来解析字符串,所以引入有穷自动机这种适合转化为计算机程序的模型

  • FA的表示: 转换图、转换表

  • 转换图:
    结点表示状态,只有一个初始状态,若干终止状态(双圈表示)
    边表示条件转移:遇到输入x则转移

  • 最长匹配原则(Longest String Matching Principle)

分类

  • 确定的FA (Deterministic Finite Automata):

其特点是从每一个状态只能发出一条具有某个符号的边。也就是说不能出现同一个符号出现在同一状态发出的两条边上。

  • 非确定的FA(Nondeterministic Finite Automata):

允许从一个状态发出多条具有相同符号的边,甚至允许发出标有ε(表示空)符号的边,也就是说,NFA可以不输入任何字符就自动沿ε边转换到下一个状态。

  • NFA会自动猜测应该选择哪一条边,而且每次都能猜对。

  • 带ε-边的NFA:无条件转移 <=> 不带ε-边的NFA

DFA 与 NFA 的区别与联系:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值