1.将DFA最小化:教材P65 第9题

I

{1, 2, 3, 4, 5}

{6, 7}

{1, 2}b->{1, 2, 3, 4, 5}

{3, 4}b->{6, 7}

{5}b->

{1, 2, 3, 4, 5}可区别,划分

II

{1, 2}{3, 4}{5}

{6, 7}

{6}b->{6}

{7}b->{6}

{6, 7}不可区别,等价

III

{1, 2}{3, 4}{5}

{6, 7}

{3}c->{3}

{4}c->{4}

{3}b->{6, 7}

{4}b->{6, 7}

{3}d->{5}

{4}d->{5}

{3, 4}不可区别,等价

IV

{1, 2}{3, 4}{5}

{6, 7}

{1}a->{3, 4}

{2}a->{3, 4}

{1}b->{2}

{2}b->{2}

{1, 2}不可区别,等价

 

  

  状态转换图如下:

   

2.构造以下文法相应的最小的DFA

S→ 0A|1B

A→ 1S|1

B→0S|0

答:S -> 0A | 1B

   -> 0(1S | 1) | 1(0S | 0)

   -> 01S | 01 | 10S | 10

      -> (01 | 10)S | (01 | 10)

   -> (01 | 10)*(01 | 10)

  由正规式可得NFA:

  

  由NFA可得DFA状态转换矩阵如下:

  

  DFA状态转换图如下:

  

  最小化DFA如下:

  

  状态转换图如下:

   

3.自上而下语法分析,回溯产生的原因是什么?

  文法中,对于某个非终结符的规则其右部有多个选择项,当根据所面临的输入符号不能准确的确定所要的选择项时,就可能出现回溯。

4.P100 练习4,反复提取公共左因子。

S -> C$

C -> bA | aB

A -> a | aC | bBB

B -> b | bC | aBB

答:S -> C$

  C -> bA | aB

  A -> aD | bAA

  B -> bD | aBB

  D -> ɛ | C

作业九——DFA最小化的更多相关文章

  1. 作业九——DFA最小化,语法分析初步

  2. 第九次作业——DFA最小化,语法分析初步

    老师:MissDu 提交作业 1.将DFA最小化:教材P65 第9题 答: 2.构造以下文法相应的最小的DFA S→ 0A|1B A→ 1S|1 B→0S|0 3.自上而下语法分析,回溯产生的原因是 ...

  3. 第九次作业 DFA最小化,语法分析初步

    1.将DFA最小化:教材P65 第9题 Ⅰ {1,2,3,4,5} {6,7} {1,2}b={1,2,3,4,5} 3,4}b={5} {6,7} Ⅱ {1,2}{3,4}{5} {6,7} 2.构 ...

  4. DFA 最小化

    NDFA.εNDFA 确定化的细节这里就不总结了,这里说一说DFA最小化的算法. 关于DFA最小化,

  5. dfa最小化,修正了上个版本的一些错误。

    上个版本测试的时候,只用了两个非常简单的测试用例,所以好多情况有问题却没有测试出来 bug1:在生成diff_matrix的时候,循环变量少循环了一次,导致最后一个节点在如果无法与其他点合并的情况下, ...

  6. 编译原理中DFA最小化

    关于编译原理最小化的操作,专业术语请移步至:http://www.360doc.com/content/18/0601/21/11962419_758841916.shtml 这里只是记录一下个人的理 ...

  7. DFA最小化,语法分析初步

    1.将DFA最小化:教材P65 第9题 2.构造以下文法相应的最小的DFA S→ 0A|1B A→ 1S|1 B→0S|0 语言:(01 | 10)*(01 | 10) 自动机图: DFA状态转换矩阵 ...

  8. 编译原理之DFA最小化,语法分析初步

    1.将DFA最小化: 状态转换图: 识别语言:b*ac*(da)*bb* 2.构造以下文法相应的最小的DFA S→ 0A|1B A→ 1S|1 B→0S|0 (1)正规式: S -> 0(1S+ ...

  9. 编译原理:DFA最小化,语法分析初步

    1.将DFA最小化:教材P65 第9题   解析: 2.构造以下文法相应的最小的DFA S→ 0A|1B A→ 1S|1 B→0S|0 解析: S→ 0A|1B →S → 0(1S|1)|1(0S|0 ...

随机推荐

  1. 客户端热更新框架之UI热更框架设计(下)

    上一篇笔者介绍了关于什么是热更新,为什么需要热更新的技术文章.本篇就专门针对UI框架的热更新功能实现部分展开讨论,讨论的重点是热更新如何与UI框架进行结合? 现在笔者把设计“UI热更新框架”的整体设计 ...

  2. github pages + hexo 搭建 blog 遇到的问题

    一. ERROR Deployer not found: git $ hexo d ERROR Deployer not found: git npm install --save hexo-depl ...

  3. 集群架构01.Nginx初步安装配置

    1.切换163yum 源,环境介绍 [root@moban ~]# cat /etc/redhat-release CentOS release 6.5 (Final) mv CentOS-Base. ...

  4. AnroidStudio gradle版本和android插件的版本依赖

  5. Spring mybatis源码篇章-动态SQL基础语法以及原理

    通过阅读源码对实现机制进行了解有利于陶冶情操,承接前文Spring mybatis源码篇章-Mybatis的XML文件加载 前话 前文通过Spring中配置mapperLocations属性来进行对m ...

  6. 大白带你侃JAVA——封装的概述及好处

    封装概述: 封装是指隐藏对象的属性和实现细节,仅对外提供公共访问方式 这是什么意思呢? 简单的来说就是我将不想给别人看的数据,以及别人无需知道的内部细节, "锁起来" ,我们只留下 ...

  7. Python 解leetcode:3. Longest Substring Without Repeating Characters

    题目描述:求一个字符串的不含重复字符的最长连续子串的长度: 思路: 使用一个哈希表保存字符出现的位置: 使用left和right分别表示子串的最左和最右字符的下标: 遍历字符串,如果当前字符在哈希表中 ...

  8. Python 解leetcode:728. Self Dividing Numbers

    思路:循环最小值到最大值,对于每一个值,判断每一位是否能被该值整除即可,思路比较简单. class Solution(object): def selfDividingNumbers(self, le ...

  9. HTTPS 简单学习

    1. HTTP缺点 使用明文通信,内容可能会被窃听: 通信加密:使用SSL和TLS: 内容加密: 不验证通信方的身份,因此可能会遭到伪装: SSL提供加密和证书: 无法证明报文的完整性,因此会遭到修改 ...

  10. Java各版本新特性总结

       Java或者说JDK的更新一般分为两部分内容:Java语言.JVM(C.C++编写),但通常情况下都不会单独发布,因为新的语言特性需要特定的JVM支持才行.下面我总结了从古至今Java各版本的新 ...