词法分析习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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