• 正规式——》最小化DFA

1.先把正则式——》NFA(非确定有穷自动机)

涉及一系列分解规则

2.再把NFA通过"子集构造法"——》DFA

通过子集构造法将NFA转化为DFA

将表里的变量名用比较简单的符号代替(最好是在进行构造的时候顺手在草稿纸上标记好,方便后面的工作)

对照上面的表,画出DFA的状态转换图

图中0,1,2,3,4,5都是终态,因为他们的集合里都包含了最初的终态“数字9”。

3.再把DFA通过"分割法”进行最小化

  • 消除多余状态

从这个状态没有通路到达终态;S1 
从开始状态出发,任何输入串也不能到达的那个状态。S2 

  • 合并等价状态

采用“分割法”

兼容性(一致性)条件——同是终态或同是非终态 
传播性(蔓延性)条件——对于所有输入符号,状态s和状态t必须转换到等价的状态里。

DFA的最小化—例子,第一步都是固定的。分成终态和非终态

1.将M的状态分为两个子集一个由终态k1={C,D,E,F}组成,一个由非终态k2={S,A,B}组成,

2.考察{S,A,B}是否可分.

因为A经过a到达C属于k1.而S经过a到达A属于k2.B经过a到达A属于k2,所以K2继续划分为{S,B},{A},

3.考察{S,B}是否可再分:

B经过b到达D属于k1.S经过b到达B属于k2,所以S,B可以划分。划分为{S},{B}

4.考察{C,D,E,F}是否可再分: 

因为C,D,E,F经过a和b到达的状态都属于{C,D,E,F}=k1所以相同,所以不可再分:

5.{C,D,E,F}以{D}来代替则,因为CDEF相同,你也可以用C来代替。无所谓的最小化的DFA如图,: 

“后面这些内容鄙人以为书上都有,列出来整理一下思路、多加练习即可,不必浪费时间敲到电脑上”

  • 正则表达式——》正则文法
正则表达式是哟中抽象数学表达式,而正则文法是一种N型文法
由正则表达式转换为正则文法的步骤如下:
  • 令开始符号为S,S属于非终结符集,VT等于字符集
  • 先生成正规产生式S->r
  • 再分解正规产生式S->r,分解规则如下:

(R.1)对形如A->r1r2的正规产生式分解为

·
A->r1B,B->r2,B属于非终结符

(R.2)对形如A->r1*r2的正规产生式分解为

A->rB,A->r1,B->rB,B->r1,B属于非终结符
(R.3)对形如A->r1|r2的正规产生式分解为A->r1,A->r2
不断应用分解规则做变换,知道每个产生式右端只含一个非终结符为止。
  • 正则文法——》正则表达式
从正则文法转换为正规表达式,实际上就是一个推倒过程。从开始符号出发,合并正规产生式S->r。合并规则如下:
(R.1)对形如A->xB,B->y的正规产生式合并为A=xy
 (R.2)对形如A->xA|y的正规表达式合并为为A=x*y
(R.3)对形如A->x|y的正规产生式合并为A=x|y
如果正规产生式中有相同的左边表达式,可以先合并出发点相同的
  • 有限自动机——》正则表达式
转换步骤:
首先加入初态x和终态y,构成一个新的NFA
然后反复使用替换规则,反复使用替换规则逐步消去NFA中的状态节点,直至剩下x,y为止。
  • 正则表达式——》有限自动机

自动构造词法分析器的步骤——正规式转换为最小化DFA的更多相关文章

  1. 正规式->最小化DFA说明

      整体的步骤是三步: 一,先把正规式转换为NFA(非确定有穷自动机), 二,在把NFA通过"子集构造法"转化为DFA, 三,在把DFA通过"分割法"进行最小化 ...

  2. 《编译原理》构造与正规式 (0|1)*01 等价的 DFA - 例题解析

    <编译原理>构造与正规式 (0|1)*01 等价的 DFA - 例题解析 解题步骤: NFA 状态转换图 子集法 DFA 的状态转换矩阵 DFA 的状态转图 解: 已给正规式:(0|1)* ...

  3. 报错:无法将类型"System.Data.EntityState"隐式转换为"System.Data.Entity.EntityState"

    报错:无法将类型"System.Data.EntityState"隐式转换为"System.Data.Entity.EntityState".   出错语句停留 ...

  4. 正规式α向有限自动机M的转换

    [注:这一节是在学习东南大学廖力老师的公开课时,所记录的一些知识点截屏,谢谢廖力老师的辛劳付出] 引入3条正规式分裂规则来分裂α,所得到的是NFA  M(因为包含ε弧,之后进行确定化就是所需要求得DF ...

  5. 有穷自动机(NFA、DFA)&正规文法&正规式之间的相互转化构造方法

    在编译原理(第三版清华大学出版社出版)中第三章的词法分析中,3.4.3.5.3.6小节中分别讲解了 1.什么是NFA(不确定的有穷自动机)和DFA(确定的有穷自动机) 2.如何将  不确定的有穷自动机 ...

  6. 正规式与正规集,DFA与NFA

    词法分析器的设计 词法分析器的功能:输入源程序.输出单词符号 词法分析器的设计:给出程序设计语言的单词规范--单词表, 对照单词表设计识别该语言所有单词的状态转换图, 根据状态转换图编写词法分析程序 ...

  7. using 语句中使用的类型必须可隐式转换为“System.IDisposable

    在使用 EF 出现 using 语句中使用的类型必须可隐式转换为“System.IDisposable 今天写在这里分享给大家 出现这样的问题,是因为没有引用  EntityFramework 这个程 ...

  8. 编译原理:正规式转变成DFA算法

    //将正规式转变成NFApackage hjzgg.formal_ceremony_to_dfa; import java.util.ArrayList; class Edge{ public int ...

  9. NHibernate无法将类型“System.Collections.Generic.IList<T>”隐式转换为“System.Collections.Generic.IList<IT>

    API有一个需要实现的抽象方法: public IList<IPermission> GetPermissions(); 需要注意的是IList<IPermission>这个泛 ...

随机推荐

  1. 新装mvn建第一个项目报错org.apache.maven.plugins:maven-resources-plugin:2.6

    1.第一次创建mvn项目会报maven-resources-plugin-2.6.jar错,原因是mvn无法自动下载这个jar包,多次删除这个目录下的C:\Users\Administrator\.m ...

  2. Partitioned Replacement for Cache Memory

    In a particular embodiment, a circuit device includes a translation look-aside buffer (TLB) configur ...

  3. 使用流的方式去进行post请求解决中文乱码问题返回xml格式

    /** * 请求post * @Title: getHttpURLConnection * @Description: TODO(这里用一句话描述这个方法的作用) * @param: @param u ...

  4. 如何爬取可用的IP代理

    上一篇说到对付反爬虫有一个很关键的方法就是使用IP代理,那么我们应该如何获取这些可用的IP代理呢?这里分享一下自己这两天的一些爬取IP代理的心得体会. 1 步骤 1.找到几个提供免费IP代理的网站,获 ...

  5. Remove Element(第一种方法参考别人)

    Given an array and a value, remove all instances of that value in place and return the new length. T ...

  6. AtCoder Grand Contest 012 D Colorful Balls

    题意: 有N个球排成一行,第i个球颜色为ci, 权为wi, 如果两个同色球权值和 <= X 则它们可以交换: 如果两个异色球权值和 <= Y 则它们可以交换:不限制交换次数,求能到达的颜色 ...

  7. CCCC2017大区赛补完

    L2-2 多项式除法 这题看懂题意就是个模拟 L3-2 周游世界 想法是相邻点连边,然后跑最短路,当最短路相同时候,比较之前经过的换乘数,取最小的作为方案 但是这样只过了2个点……? 网上dalao们 ...

  8. java设计模式——单例设计模式

    /*设计模式:对问题行之有效的解决方式.其实它是一种思想. 1,单例设计模式.    解决的问题:就是可以保证一个类在内存中的对象唯一性. 必须对于多个程序使用同一个配置信息对象时,就需要保证该对象的 ...

  9. Memcached的几种Java客户端(待实践)

    其实现在来尝试Memcached的客户端估计会有点过气,因为现在大势基本都在Redis那边. Memcached Client目前有3种: Memcached Client for Java(已经停止 ...

  10. Mysql的timestamp类型,自动记录数据的更新时间

    datetime也可以设置自动更新的