在编译原理(第三版清华大学出版社出版)中第三章的词法分析中,3.4、3.5、3.6小节中分别讲解了

1、什么是NFA(不确定的有穷自动机)和DFA(确定的有穷自动机)

2、如何将  不确定的有穷自动机(NFA)  转化为  确定的有穷自动机(DFA);

3、如何化简DFA;

4、正规式和有穷自动机的等价性(根据给出的正规式构造有穷自动机);

5、正规文法和有穷自动机的等价性(根据给出的正规式构建有穷自动机);

个人在开始学习这一章节的时候,课上听得有些迷惑,并且看书也是感觉没有头绪,后来花了一些精力捋清思路之后,觉得这一章节并不是很难,只是书在通过文字表述这些思想方法的时候十分严谨,也就让人初看起来有些迷糊。并且在网上寻找资料的时候总是一块一块的孤立知识点,又让我花了一些时间来理清这些思绪。导致做习题一度陷入僵局,现在在这里吧学习笔记记录下来。为了让以后自己复习能够快速捡起来,如果同时能够帮到和我一样,在这一章节遇到难的朋友,那就更好不过了。

点击上面列出来的小节,可以点进到相应的章节查看详情。

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

  1. 编译原理-DFA与正规式的转化

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

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

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

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

  4. 自动构造词法分析器的步骤——正规式转换为最小化DFA

    正规式-->最小化DFA 1.先把正则式-->NFA(非确定有穷自动机) 涉及一系列分解规则 2.再把NFA通过"子集构造法"-->DFA 通过子集构造法将NFA ...

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

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

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

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

  7. 什么是NFA(不确定的有穷自动机)和DFA(确定的有穷自动机)

    本节知识点是<编译原理>第三章-词法分析,学习参考教材为清华大学出版社<编译原理>第三版: 前情提要: 字母表∑1和∑2的乘积( product): ∑1∑2 ={ab|a ∈ ...

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

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

  9. 编译原理课后习题答案令A,B和C是任意正规式,证明以下关系成立(A|B)*=(A*B*)*=(A*|B*)*

    题目: 令A.B和C是任意正规式,证明以下关系成立: A∣A=A (A*)*= A*         A*=ε∣A A*        (AB)*A=A(BA)*        (A∣B)*=(A*B ...

随机推荐

  1. 使用Makefile编译Erlang

    #配置选项,可以是DEBUG和RELEASE CONFIG ?= RELEASE #语言配置,可以是chs(简体中文).cht(繁体中文)等等 Region ?= chs #源文件目录 SOURCE_ ...

  2. vue 组件之间互相传值:兄弟组件通信

    vue 组件之间互相传值:兄弟组件通信我们在项目中经常会遇到兄弟组件通信的情况.在大型项目中我们可以通过引入 vuex 轻松管理各组件之间通信问题,但在一些小型的项目中,我们就没有必要去引入 vuex ...

  3. 常用yum源之(Percona MySQL)

    [percona]name = CentOS $releasever - Perconabaseurl=http://repo.percona.com/centos/$releasever/os/$b ...

  4. js error监控

    window.onerror = function(message, source, lineno, colno, error) { ... } 功能参数: message:错误消息(字符串).eve ...

  5. oracle创建用户ORA-01045:user lacks CREATE SESSION privilege;

    conn internal/oracle grant user aaaa identified by aaaa; conn aaaa/aaaa 会报错: SQL>conn aaaa/aaaa 会 ...

  6. 6.zabbix微信告警3.2

    原文地址: https://blog.cactifans.com/2016/01/27/zabbix%E5%BE%AE%E4%BF%A1%E5%91%8A%E8%AD%A6/ pdf : 链接: ht ...

  7. 【开源项目】一篇文章搞掂:Pig微服务框架

    1.项目开发环境和运行步骤 1.1.项目开发环境 Idea:2018.1.6 Maven:3.5.3 JDK:1.8.0_172 MySQL:5.7.19(之前安装8.0.11会运行失败) Redis ...

  8. Qwidget布局操作之QGridLayout(网格布局)

    QMainWindow并没有setLayout()函数,因此不能使用setLayout()函数来设置layout,需要使用间接的方法. 需要做的只是先定义一个QWidget对象,然后使用QMainWi ...

  9. HTML5: HTML5 语义元素

    ylbtech-HTML5: HTML5 语义元素 1.返回顶部 1. HTML5 语义元素 语义= 意义 语义元素 = 有意义的元素 什么是语义元素? 一个语义元素能够清楚的描述其意义给浏览器和开发 ...

  10. 73、salesforce通过JAVA来Call在salesforce中已经写好的Restful处理接口

    /** *使用salesforce通过REST方式作为webservice,需要以下几点 *1.类和方法需要global,方法需要静态 *2.类需要通过RestResource(UrlMapping= ...