有穷自动机

    • FAFAFA 的表示:转换图
    • FAFAFA 定义(接收)的语言
    • 最长子串匹配原则
  • 有穷自动机FA的分类
    • 确定的有穷自动机DFA
    • 非确定有穷自动机NFA
      • 带有“空边”的NFA
    • 带有和不带有“空边”的NFA的等价性

这类系统具有一系列离散的输入输出信息和有穷数目的内部状态(状态:概括了对过去输入信息处理的状况)
系统只需要根据当前所处的状态和当前面临的输入信息就可以决定系统的后继行为。每当系统处理了当前的输入后,系统的内部状态也将发生改变。

  • 输入带:用来存放输入符号串
  • 读头:从左向右逐个读取输入符号,不能修改(只读),不能往返移动
  • 有穷控制器:具有有穷个状态数,根据当前的状态和当前输入符号控制转入下一状态。

FAFAFA 的表示:转换图

结点:FA的状态

  • 初始状态(开始状态):只有一个,由start箭头指向
  • 终止状态(接收状态):可以有多个,用双圈表示
  • 带标记的有向边:如果对于输入a,存在一个从状态p到状态q的转换,就在p、q之间画一条有向边,并标记上a

FAFAFA 定义(接收)的语言

给定输入串x,如果存在一个对应于串x的从初始状态到某个终止状态的转换序列,则称串x被该FA接收
由一个有穷自动机M接收的所有串构成的集合称为是该 FAFAFA 定义(或接收)的语言,记为L(M)L(M)L(M)

最长子串匹配原则

当输入串的多个前缀与一个或多个模式匹配时,总是选择最长的前缀进行匹配。
在到达某个终态之后,只要输入带上还有符号,FA就继续前进,以便寻找最可能长的匹配

有穷自动机FA的分类

  • 确定的FA(Deterministic finite automata)—— DFA
  • 非确定的FA(Nondeterministic finite automata)—— NFA

确定的有穷自动机DFA


符号从左到右依次是:

  • 有穷状态集
  • 输入字母表
  • 转换函数
  • 开始状态(或初始状态)
  • 接收状态(或终止状态)集合

非确定有穷自动机NFA


写转换表时:
如果转换函数没有给出对应于某个状态-输入对的信息,就把空集放入相应的表项中

带有“空边”的NFA



带有和不带有“空边”的NFA的等价性

3词法分析 - 有穷自动机相关推荐

  1. 词法分析 有穷自动机

    1. 有穷自动机的概念: 有穷自动机(FA)是词法分析的重要理论基础.系统根据自己的有穷状态和离散的输入信息决定系统的后序行为.每处理一个输入,系统内部状态也可能发生改变. 其转换图表示法如下所示: ...

  2. QQ浏览器HD iOS 动态化/热修复方案QBDF解释器-词法分析(3)【简书被冻结-搬运】

    此次共享,腾讯内网 / 外网同步发布. 内部代码地址:https://git.code.oa.com/fatboyli/QBDF 外部代码地址:GitHub - ventureli/QBDF 两年前的 ...

  3. 【编译原理笔记03】词法分析:正则表达式、有穷自动机(FA)、DFA与NFA及RE的相互转换、DFA识别单词、语法检测

    本次笔记内容: 3-1 正则表达式 3-2 正则定义 3-3 有穷自动机 3-4 有穷自动机的分类 3-5 从正则表达式到有穷自动机 3-6 从NFA到DFA的转换 3-7 识别单词的DFA 文章目录 ...

  4. 编译原理第三章 词法分析与有穷自动机

    词法分析与有穷自动机 1.词法分析程序的功能 2.正规集.正规式.正规文法.确定的有穷自动机.不确定的有穷自动机的定义. 3.正规文法.有穷自动机.正规式三者之间的互相转换方法.不确定有穷自动机到确定 ...

  5. 03 | 词法分析程序与有穷自动机

    03 | 词法分析程序与有穷自动机 词法分析程序概述 正规式与正规集 正规文法与正规式 正规式与有穷自动机 确定有穷自动机(DFA) 非确定有穷自动机(NFA) 二者对比 正规式构造有穷自动机 有穷自 ...

  6. 编译原理——java 词法分析【有穷自动机实现】

    编译原理--实验1 实验要求 1) 基于词法规则设计词法分析器(20分) 画出确定的有穷自动机(确定化),并提供必要的文字说明.提交状态转换图.doc 2) 词法分析程序的编程实现(80分) (1) ...

  7. 利用自动机识别c 语言单词,第03章 词法分析与有穷自动机(2).ppt

    <第03章 词法分析与有穷自动机(2).ppt>由会员分享,可在线阅读,更多相关<第03章 词法分析与有穷自动机(2).ppt(59页珍藏版)>请在人人文库网上搜索. 1.3. ...

  8. 编译原理——词法分析(3)有穷自动机中DFA与NFA的理解

    1.1词法分析器生成工具Lex 虽然在学习上,我们学习的是Lex,但是最近经常使用的是词法分析器生成工具是Flex,它可以为C语言生成代码,Vern Paxson于1987年以C语言写作了Flex,他 ...

  9. 第三章 - 有穷自动机与词法分析(一)

    使用自动机和正则表达式判断字符串是否合法. 构造词法分析器的方法可以分为人工方法和自动化方法. 3.1.1 词法分析器的功能 ①每当程序员敲击键盘上一个键时,自动向计算机输入一个相应的8位二进制码,这 ...

最新文章

  1. html 复选框 mysql_Html:实现带复选框的下拉框(一)
  2. 47. 对数组进行冒泡排序,实现冒泡排序的基础版与优化版
  3. 掘金健康大数据 需突破多重挑战
  4. Excel和Word 简易工具类,JEasyPoi 2.1.5 版本发布
  5. 【数电】(一) 进制转换编码 原码,反码,补码
  6. 目标追踪-背景差算法
  7. 20181009-6 选题 Scrum立会报告+燃尽图 05
  8. PHP清除HTML代码、空格、回车换行符的函数
  9. 一文读懂 K8s 持久化存储 | 凌云时刻
  10. 利用CNN进行面部表情识别
  11. 典型芯片封装及其特征间距
  12. 北大飞跃手册_飞跃手册 | 保研篇——北京大学
  13. 计算机键盘的删除键,电脑删除键在哪 删除的快捷键是什么
  14. C++标准委员会7月科隆会议中投票通过的特性
  15. 华硕主板如何用u盘启动计算机,最新华硕主板bios设置u盘启动教程
  16. NShape(开源矢量图形编辑器) 入门(一)
  17. 测试经典名言100句
  18. 《上瘾:让用户养成使用习惯的四大产品逻辑》读书笔记摘录
  19. (JS)统计重复个数
  20. 计算机打字打出来的是数字,打字为什么出现数字

热门文章

  1. 轻松打造自己的Cheat Engine
  2. 怎样防止租用服务器数据丢失问题
  3. 一个使用python和TUShare进行股票分析的例子
  4. vue按钮10S秒后禁用
  5. Codeforces Round #834 (Div. 3) E. The Humanoid
  6. 四边形围栅栏c语言长度,不同结构围油栏拦油特性数值的研究.pdf
  7. 啪啪打脸,国际互联网协会数据泄露
  8. windows CE初次接触(一次升级长安致尚XT高德导航的经历)
  9. 与电容有关的几个滤波电路
  10. 2022win7cf烟雾头最新调法