编译原理 词法分析2(附答案) 东华大学 姚励
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
作业
第二题:(上海交通大学1984年考研试题)下述正规表达式中(1)与(a*|b)*(c|d)等价。
⑴(a|b)*c|(a|b)*d
⑵a*(c|d)|b*(c|d)
⑶a*(c|d)*|b(c|d)*
第三题:(西北工业大学1999年考研试题)设字母表∑={a,b,0,1},请写出满足下述条件的正则表达式:以字母a或b打头,以1结尾。
答案:a(a|b|0|1)*1| b(a|b|0|1)*1
第四题:
(1)构造一个正规式,它接受∑={a,b}上所有包含ab的字符串。
(2)构造一个正规式,它接受∑={a,b}上所有以ab结尾字符串。
(3)构造一个正规式,它接受∑={a,b,c}上符合以下规则的字符串:
如果以a开头,则串内至少包含一个c;如果以b开头,则串内至多包含一个 a。
答案:(1) (a|b) * ab (a|b)*
(2) (a|b) * ab
(3) a (a|b|c)* c (a|b|c)* | b ( (b|c) * a(b|c) * | (b|c) * )
第六题:试构造正规表达式((a*|b)(b*a)) *的NFA,然后确定化和最小化。
答案:
与正规表达式等价的NFA如下所示:
注:未标明转移条件的,均默认为条件为ε
上图对应状态名Si如下:
3 4 5 6
1 2 9 10 11 12 13 14 15 16
7 8
S1闭包={ S1,S2,S3,S4,S6,S7,S9,S10,S11,S13,S14,S16 } S2闭包={ S2,S3,S4,S6,S7,S9,S10,S11,S13,S14 }
S3闭包={ S3,S4,S6,S9,S10,S11,S13,S14 }
S4闭包={ S4 }
S5闭包={ S4,S5,S6,S9,S10,S11,S13,S14 }
S6闭包={ S6,S9,S10,S11,S13,S14 }
S7闭包={ S7 }
S8闭包={ S8,S9,S10,S11,S13,S14 }
S9闭包={ S9,S10,S11,S13,S14 }
S10闭包={ S10,S11,S13,S14 }
S11闭包={ S11 }
S12闭包={ S11,S12 ,S13,S14}
S13闭包={ S13,S14 }
S14闭包={ S14 }
S15闭包={ S2,S3,S4,S6,S7,S9,S10,S11,S13,S14,S15,S16 }
S16闭包={ S16 }
DFA
取Q1= S1闭包={ S1,S2,S3,S4,S6,S7,S9,S10,S11,S13,S14,S16 } 则f(Q1,a)= S5闭包+ S15闭包
={ S2,S3,S4,S5,S6,S7,S9,S10,S11,S13,S14,S15,S16 }=Q2
f(Q1,b)= S8闭包+ S12闭包
={ S8,S9,S10,S11,S12,S13,S14 }=Q3
此时,Q2,Q3未标记。
f(Q2,a)= S5闭包+ S15闭包=Q2
f(Q2,b)= S8闭包+ S12闭包=Q3
此时,Q3未标记。
f(Q3,a)= S15闭包=Q4
f(Q3,b)= S12闭包=Q5
此时,Q4,Q5未标记。
f(Q4,a)= S5闭包+ S15闭包= Q2
f(Q4,b)= S8闭包+ S12闭包= Q3
此时,Q5未标记。
f(Q5,a)= S15闭包= Q4
f(Q5,b)= S12闭包= Q5
此时,无未标记状态。 END
a b
Q2 Q2 Q3
Q3 Q4 Q5
Q4 Q2 Q3
其中,Q1,Q2,Q4为终止状态,Q3, Q5为非终止状态。
由上图易知,Q1,Q2,Q4等价,Q3,Q5等价。
DFA最小化:
a b
Y X Y