帮忙解下编译原理题

构造一个DFA,接受Z={0,1}上所有满足如下条件的字符串每个1都有0直接连在右边.
写出正规式 DFA 最少DFA

第1个回答  2006-06-12
1.构造正规式1(0|1)*101相应的DFA.

先构造NFA

确定化

0
1

X

A

A
A
AB

AB
AC
AB

AC
A
ABY

ABY
AC
AB

重新命名,令AB为B、AC为C、ABY为D

0
1

X

A

A
A
B

B
C
B

C
A
D

D
C
B

DFA:

2.将下图确定化:

0
1

S
VQ
QU

VQ
VZ
QU

QU
V
QUZ

VZ
Z
Z

V
Z

QUZ
VZ
QUZ

Z
Z
Z

重新命名,令VQ为A、QU为B、VZ为C、V为D、QUZ为E、Z为F。

0
1

S
A
B

A
C
B

B
D
E

C
F
F

D
F

E
C
E

F
F
F

DFA:

3.把下图最小化:

初始分划得∏0:终态组{0},非终态组{1,2,3,4,5}

对非终态组进行审查:

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

而{0,1,3,5}既不属于{0},也不属于{1,2,3,4,5}

∵{4} a {0},所以得新分划

∏1:{0},{4},{1,2,3,5}

对{1,2,3,5}进行审查:

∵{1,5} b {4}

{2,3} b {1,2,3,5},故得新分划

∏2:{0},{4},{1, 5},{2,3}

{1, 5} a {1, 5}

{2,3} a {1,3},故状态2和状态3不等价,得新分划

∏3:{0},{2},{3},{4},{1, 5}

这是最后分划了

最小DFA:

4.构造一个DFA,它接收∑={0,1}上所有满足如下条件的字符串:每个1都有0直接跟在右边。并给出该语言的正规式和正规文法。

按题意相应的正规表达式是0*(0 | 10)*0*或0*( 100*)*0*

构造相应的DFA,首先构造NFA为

用子集法确定化

I
I0
I1
S
0
1

{X,0,1,3,Y}

{0,1,3,Y}

{2}

{1,3,Y}
{0,1,3,Y}

{0,1,3,Y}

{1,3,Y}

{1,3,Y}
{2}

{2}

/

{2}
1

2

3

4
2

2

4

4
3

3

3

DFA:

可最小化,终态组为{1,2,4},非终态组为{3},{1,2,4}0 {1,2,4},{1,2,4}1 {3},所以1,2,4为等价状态,可合并。

编译原理问题,求解答
好,我来帮你理解一下,先看基本知识:四元式是一种比较普遍采用的中间代码形式。四元式的四个组成成分是:算符op,第一和第二运算对象ARG1和ARG@及运算结果RESULT。运算对象和运算结果有时指用户自己定义的变量,有时指编译程序引进的临时变量。例如a∶=b*c+b*d的四元式表示如下:(1)(*, ...

编译原理题目
下面先给出一个定义 嵌套深度: S恰经过n步推理后,语句中不含S,则说S的嵌套深度为n。显然,S的嵌套深度至少为1.下面对嵌套深度用归纳法。嵌套深度为1时,语句为y,满足x*yx*的形式。设嵌套深度为k时,语句满足形式x*yx*。嵌套深度为k+1时,语句为x*Sx*,其中S->xSx->xyx。所以x*Sx*...

编译原理正规式转正规文法问题
正规式:a(a丨b)正规集:就是表示必须以终结符a开始,后面可以出现若干个a或b(包括0)的连续的串 这个题目是7个一起的 不是7道题,s为开始文法,后面都是连着的

编译原理问题:求解
1算术表达式文法:这个文法是一个递归文法。计算机进行逻辑推导时会走很多弯路(类似于遍历一颗树的过程)。为了不让计算机走弯路(提高效率的目的),可以变换为第二种文法。这种文法消除了递归(消除了歧义,类似于后缀表达式),使计算机可以一条直线走到底儿推导出结果。我也很久没看编译原理了。 呵呵 ...

求解编译原理的一道题:设有文法如下
首先要做这题你要知道判别文法类型 包括四个层次:0-型文法(无限制文法或短语结构文法)包括所有的文法。该类型的文法能够产生所有可被图灵机识别的语言。可被图灵机识别的语言是指能够使图灵机停机的字串,这类语言又被称为递归可枚举语言。注意递归可枚举语言与递归语言的区别,后者是前者的一个真子...

计算机科学与技术中编译原理简答题
1、什么是移进项目,什么是规约项目 这个是自顶向下和自下向上分析时候用到的。所谓移进就是不处理,所谓规约就是处理,合并,替换。比如当前符合某个正规式左部,就用这个正规式右部替换左部,称为规约。两种操作的目的都是为了分析整体是否符合语法树。2、请给出生成C语言语句序列的文法(假定s表示...

编译原理试题
帮助的人:26.7万 我也去答题访问个人页 关注 展开全部 习题一、单项选择题1、将编译程序分成若干个“遍”是为了 。 a.提高程序的执行效率 b.使程序的结构更加清晰 c.利用有限的机器内存并提高机器的执行效率 d.利用有限的机器内存但降低了机器的执行效率2、构造编译程序应掌握 。 a.源程序 b.目标语言...

编译原理试题
1.若源程序是用高级语言编写的,目标程序是 机器语言程序或汇编程序 ,则其翻译程序称为编译程序.2.一个典型的编译程序中,不仅包括词法分析、语法分析、中间代码生成、代码优化、目标代码生成等五个部分,还应包括表格处理和出错处理。其中,词法分析器用于识别 单词 。3.编译方式与解释方式的根本区别为...

编译原理中的文法设计这题该怎么做,能给一下思路和答案吗?
文法的设计需要考虑文法的类型和表达能力。一种可能的思路是:首先,确定值为非负的5的倍数或3的倍数的数字串有什么特征,例如结尾只能是0或5或3或6或9,不能有前导0等。然后,选择合适的文法类型来描述这些特征,例如正规文法、上下文无关文法等。最后,根据文法类型的规则,给出产生式和开始符号。...

编译原理习题,下图为什么a为句柄, 而不是最左面的b为句柄?怎样理解句柄...
baSb的最右推导为:S->AB->ASb->bBSb->baSb 根据句柄定义:所以a为baSb的句柄。只有单层分支的子树称为简单子树。最左简单子树末端结点组成的符号串为句柄。

相似回答