55问答网
所有问题
如题,编译原理中为什么要将NFA转化为DFA
如题所述
举报该问题
其他回答
第1个回答 2017-11-01
对DFA来说,一个输入必然对应唯一的路径与结果,而这正是我们设计编译器所需要的。
如果从一个状态经过同样的一个输入可以通过两条或更多路径达到不同的状态,我们的编译器就会迷惑(不知道怎么办),只能通过穷举测试每个状态是否可行,而穷举算法的效率通常都很低下。
DFA的最简化是有固定算法的,NFA有没有我不知道,通常最简化之后的DFA要比NFA简单得多
本回答被网友采纳
相似回答
编译原理中为什么要将NFA转化为DFA
答:
编译原理中DFA是确定的有限自动机,而NFA是非确定有限自动机,
将NFA化为DFA是将状态数减少
,更为简单确定 希望能给你帮助。
!!
编译原理DFA
和
NFA
答:
DFA或NFA是对计算机程序的行为的抽象模型
。你编写的程序其实就对应了一个自动机。简单举例来说,如果a,b可以取值0或1; 程序: if(a==1) b=1; 这个程序对应了一个自动机。对应的自动机就有状态 (0,0), (0,1), (1,1), (1, 0)比如你自动机的初始状态是 (1,0)即a=1,b=0时,...
【
编译原理
】第三章:词法分析
答:
从人的角度看,NFA比DFA更加直观;但对于程序来说,DFA比NFA容易实现
。直接从RE转换到DFA是比较困难的,所以一般通过NFA作为中介。DFA中的每个状态都是NFA中状态集合的一个子集。即,先写出NFA的转换表,再通过新的状态构建出DFA。例:记数字为 ,字母为 ,那么标识符的正则表达式为:这个正则表达式...
详解正则表达式与
NFA
的
转换
答:
简单来说,
NFA 就是存在着不确定状态转换的 DFA
。我们还拿灯泡的例子:(灯泡打开的时候还有可能会坏掉)先列出三种基本正则表达式的 NFA 图:表示 A 与 B 的连接,NFA 图如下:我们来画一个复杂的正则表达式与 NFA 的转换 1)首先把 a 看成 A,把 (b|c)* 看成 B就有:2)再拆解 (b|c...
编译原理NFA转DFA
,
请问DFA的初始状态如何确定?
答:
NFA
确定化的时候,包含NFA初态的那个
DFA
状态就是确定后的DFA的初态。DFA的终态就是所有包含了NFA终态的DFA的状态。先以0开始,经过任意个ε得到的结点就是第一个状态,这道题没有ε就是{0}。根据算法
转化
来的DFA肯定是唯一的,但是转化得到的DFA并不一定是状态最少的,每一个DFA都可以转化到状态...
大家正在搜
编译原理为什么叫龙书
编译原理王生原课后题
编译原理有什么用
编译原理大题
编译原理大题讲解
编译原理 简答题
编译原理期末大题
编译原理选择题
程序设计语言编译原理课后题答案
相关问题
请问编译原理中为什么要将NFA转化为DFA?
编译原理中,由NFA转化来的DFA是唯一的吗?
编译原理NFA转DFA 请问DFA的初始状态如何
编译原理NFA转DFA ,DFA的状态怎么确定?下图红框框里...
编译原理,子集法将NFA确定为DFA,求问,表格中的部分都是...
编译原理:怎么用子集法将NFA转换成DFA? 用图4.16的...
编译原理nfa转dfa
下图的fa是nfa还是dfa?为什么