编译原理第3章 习题解答 下载本文

内容发布更新时间 : 2024/6/25 13:21:53星期一 下面是文章的全部内容请认真阅读。

第3章 习题解答

1.构造正规式1(0|1)*101相应的DFA. [答案]

先构造NFA

确定化 X A AB AC ABY X A B C D 转化成DFA:

==============================================================

2.将下图确定化:

0 A AC A AC 0 A C A C 1 A AB AB ABY AB 1 A B B D B 重新命名,令AB为B、AC为C、ABY为D [答案]

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

转化为DFA:

================================================================ 3.把下图最小化:

[答案]

(1)初始分划得Π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},所以得新分划 (2)Π1:{0},{4},{1,2,3,5} 对{1,2,3,5}进行审查: ∵{1,5} b {4}

{2,3} b {1,2,3,5},故得新分划 (3)Π2:{0},{4},{1, 5},{2,3} {1, 5} a {1, 5}

{2,3} a {1,3},故状态2和状态3不等价,得新分划 (3)Π3:{0},{2},{3},{4},{1, 5} 这是最后分划了 (4)最小DFA:

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

按题意相应的正规表达式是0*(100*)*0* 构造相应的DFA,首先构造NFA为

0 0 5 0 ε X 1 ε 1 2 3 0 4 ε ε 6 ε 7 ε Y ε 用子集法确定化

I {X,1,2} S {1, 2} A {3} B {4,5,6,2,7,Y} C {5,6,2,7,Y} D DFA: I0 {1, 2} A {1, 2} A {4,5,6,2,7,Y} C {5,6,2,7,Y} D {5,6,2,7,Y} D I1 {3} B {3} B / {3} B {3} B

0 0 1 A S 1 B 1 0 1 C 0 D 0

可最小化,终态组为G1={C, D},非终态组为G2={S, A, B} 对于G2分析:f(S,0)=A, f(A,0)=A, 后继状态均属于G2 而f(B,0)=C, 后继状态属于G1 将G2分割成G21={S,A}, G22={B}