词法分析习题

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

词法分析补充习题

1. 构造与正规式(a|ba)*等价的状态最少的DFA。

2. 构造与正规式(a|b)*a(a|b)等价的状态最少的DFA。

3. 构造与正规式(a|b)* aa等价的状态最少的DFA。

1. 解答:(1)构造NFA如图1所示:

a

(

图1(a|ba)*的NFA

①、

②②③为重新标注的状态号。画出相应的状态图如图2所示。

图2(a|ba)*的DFA

(3)DFA 最小化

首先得到两个子集K1 = {3} 和 K2 = {1,2}。

考察K2,由于{1,2}a = {2} K2,{1,2}b = {3} K1,所以K2不可再分。用1来代表K2并删除3,得到最小化DFA 的状态图,图3所示.

·

图3 正规式(a |b a )*的最小化DFA

2. 解答

(1)构造NFA ,见图1

图1 正规式(a|b)*a (a|b)的NFA

(2)NFA 确定化为DFA 的过程表和相应DFA 的状态图,见图2 I I a I b ①{S, A, B} ②{A, B, C} ③{A, B} ②{A, B, C} …

④{A, B, C, Z} ⑤{A, B, Z}

③{A, B} ②{A, B, C} ③{A, B} ④{A, B, C, Z} ④{A, B, C, Z} ⑤{A, B, Z} ⑤{A, B, Z} ②{A, B, C}

③ 》 ④ {A, B}

② ③④⑤为重新标注的状态号。画出相应的状态图如图2所示。

A Z

: a : B

C

b

ε

ε

a

a

1 a a

3 " b

;

>

.

图2 正规式(a|b)*a (a|b)的DFA

(3)将DFA 最小化并得到最小化的状态图,见图3

首先进行初始划分得到两个子集:K 1 = {1,2,3} 和 K 2 = {4,5}

考察K 1:因{1,2,3}a={2,4} K 1,也 K 2,所以{1,2,3}可被重新划分。由于状态1和状态3输入a 都到达状态2,输入b 都到达状态3,而状态2输入a 到达状态4,输入b 到达状态5,所以将K1分割成:K 11 = {1,3} 和 K 12 = {2}

目前划分得到的子集为:K 11 = {1,3} , K 12 = {2}, K 2 = {4,5}

考察K 11:{1,3}a={2} K 1,{1,3}b={3} K 1,所以{1,3}无需重新划分。

考察K 2:因{4,5} a={4,2} K 11, K 12, K 2,所以K 2可被重新划分。将K2分割成:K 21={4},K 22={5}。

目前划分得到的子集为:K 11={1,3},K 12 = {2},K 21={4},K 22={5}

最后,令状态1代表K 11,并删除3,最小化DFA 的状态图如下所示:

2 -

a

1

3

b

a

a

a b

4

b

b

b

a

2

a

|

图3 正规式(a|b)*a (a|b)的最小化DFA

注(思考):本题图1中的ε可省去,便可简化DFA 的构建过程,见题3。 ~

3. 解答:(1)构造NFA 如图1所示:

\

图1(a |b )*aa 的(NFA 虚框内去掉)

(2)NFA 确定化为DFA 的过程如下表所示: 》相应的状态图如图2所示。

a

b

图2(a |b )*aa 的DFA

(3)DFA 最小化

首先得到两个子集K1 = {1,2,3} 和 K2 = {4}。 考察K1:由于{1,2,3}a = {1,2,4} K1,也 K2,所以K1可需要被分割。又因为{1,3}a = {2},{1,3}b = {3},所以将原状态集合分割成以下子集:K11={2},K12={1,3}。 目前划分得到的子集为:K11={2},K12={1,3},K2 = {4}。

考察K12:{1,3}a = {2} K1,{1,3}b = {3} K1,所以K1不可再分割。状态1和状态3可合并为同一状态。得到最小化DFA 的状态图图3所示,

图3 正规式(a |b )* a a 的最小化DFA

a b

b

3 a 2 b 3

b

b

1 b

a a

相关文档
最新文档