作业九——DFA最小化
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最小化的更多相关文章
- 作业九——DFA最小化,语法分析初步
- 第九次作业——DFA最小化,语法分析初步
老师:MissDu 提交作业 1.将DFA最小化:教材P65 第9题 答: 2.构造以下文法相应的最小的DFA S→ 0A|1B A→ 1S|1 B→0S|0 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.构 ...
- DFA 最小化
NDFA.εNDFA 确定化的细节这里就不总结了,这里说一说DFA最小化的算法. 关于DFA最小化,
- dfa最小化,修正了上个版本的一些错误。
上个版本测试的时候,只用了两个非常简单的测试用例,所以好多情况有问题却没有测试出来 bug1:在生成diff_matrix的时候,循环变量少循环了一次,导致最后一个节点在如果无法与其他点合并的情况下, ...
- 编译原理中DFA最小化
关于编译原理最小化的操作,专业术语请移步至:http://www.360doc.com/content/18/0601/21/11962419_758841916.shtml 这里只是记录一下个人的理 ...
- DFA最小化,语法分析初步
1.将DFA最小化:教材P65 第9题 2.构造以下文法相应的最小的DFA S→ 0A|1B A→ 1S|1 B→0S|0 语言:(01 | 10)*(01 | 10) 自动机图: DFA状态转换矩阵 ...
- 编译原理之DFA最小化,语法分析初步
1.将DFA最小化: 状态转换图: 识别语言:b*ac*(da)*bb* 2.构造以下文法相应的最小的DFA S→ 0A|1B A→ 1S|1 B→0S|0 (1)正规式: S -> 0(1S+ ...
- 编译原理: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+2+...+n
牛客上面一道题,闲来无事做做陶冶情操. 这一陶冶还真的陶冶出了骚操作 看一下题目吧: 求1+2+3+...+n,要求不能使用乘除法.for.while.if.else.switch.case等关键字及 ...
- 执行sudo命令时command not found的解决办法
问题的原因: 在编译sudo包的时候默认开启了- -with-secure-path选项. 方法1: sudo vim /etc/sudoers,并在文件内增加这么一行:Defaults secure ...
- docker 运行pptpd服务器
今天试着用docker搭了一下pptpd服务器,感觉清爽不少(当然是踩坑之后的啦),特此记录. 使用的镜像: mmontagna/docker-vpn-pptp 由于是现成的镜像,所以我们 ...
- 【转帖】Linux 桌面进化史
Linux 桌面进化史 https://www.oschina.net/news/109440/how-linux-desktop-grown 与之前认识到的一样 桌面最开始 是 施乐公司研发的. 后 ...
- 在Eclipse中手动为其添加spring组件开发支持
https://blog.csdn.net/Tajyl/article/details/79410897 注意找对应spring版本 进入eclipse >>help>>abo ...
- 2019年08月21日 服务部署笔记 请求打不到域名后某个pod上
背景: 一个小项目http+https的小项目, 需要配置域名, 因http 和 https服务共存, 所以决定域名后面挂两个不同的LVS, 80端口一个, 443端口一个. 服务框架: nginx服 ...
- Kubernetes---Pod重启策略
PodSpec中有一个restartPolicy 字段,可能的值为Always.OnFailure和Never.默认为Always.restartPolicy 适用于Pod 中的所有容器.restar ...
- 关于MD5加盐使用
md5 是一种数据加密,例子是对123456 进行了两次加盐 第一次是 inputPassToFormPass salt是固定的 1a2b3c4d 第二次是 formPassToDBPass s ...
- Centos7下,宿主机nginx配合docker环境的php-fpm
一.安装docker并启动 yum install docker systemctl start docker 二.安装nginxCentOS 7默认不能从yum中安装nginx,原因可以自己搜索一下 ...
- 【数学】Eddy Walker
#include<bits/stdc++.h> using namespace std; typedef long long ll; ; ll qpow(ll a,ll b){ ll an ...