编译原理习题答案-向张幸儿老师索取剖析.pptVIP

  • 106
  • 0
  • 约2.38万字
  • 约 62页
  • 2017-05-06 发布于湖北
  • 举报

编译原理习题答案-向张幸儿老师索取剖析.ppt

步骤3 构造DFA如下: DFA N?=(K?,{0,1}, M?, [S], F?) 其中:K?= {[S],[ MV],[MU],[ MUZ],[ MVZ]} M?:M?([S],0) =[VM] M?([S],1) =[MU] M?([MV],0) =[ MVZ] M?([MV],1) =[MU] M?([MU],0) =[ MV] M?([MU],1) =[MUZ] M?([MVZ],0)=[ MVZ] M?([MVZ],1) =[MUZ] M?([MUZ],0)=[ MVZ] M?([MUZ],1) =[MUZ] F?= {[MVZ], [ MUZ]} 注意: 1. DFA N?的状态名必须用方括号对[与]括住,且状态名中所包含的字母必须按字典顺序排列(数字也一样)。 2. 终止状态之名则必须包含原NFA中终止状态名,如,新终止状态名[MVZ]中包含了原终止状态名Z。 7. 设有NFA A=({q0,q1,q2}, {a,b},M,{q0},{q1}), 其中M为: M(q0,a)={q1,q2} M(q0,b)={q0} M(q1,a)={q0,q1} M(q1,b)= ? M(q2,a)={q0,q2} M(q2,b)={q1} 试为其构造DFA, 它能接受bababab与abababb吗? 解:首先写出状态转换矩阵如下。 a b [q0] [q1,q2] [q0] [q1,q2] [q0,q1,q2] [q1] [q0,q1,q2] [q0,q1,q2] [q0q1] [q1] [q0q1] [q0,q1] [q0,q1,q2] [q0] 所以 DFA A?=(K?,{a,b},M?,[q0],F’) 其中:K?={[q0],[q1], [q0q1], [q1q2], [q0q1q2]} M?: M?([q0],a) =[q1q2] M?([q0],b)=[q0] M?([q1q2],a) =[q0q1q2] M?([q1q2],b)=[q1] M?([q0q1q2],a)=[ q0q1q2] M?([q0q1q2],b)=[q0q1] M?([q1],a) =[q0q1] M?([q0q1],a) =[ q0q1q2] M?([q0q1],b)=[q0] F?={[q1],[q1q2],[q0q1],[q0q1q2]} 运行DFA A?: 输入字符串bababab M?([q0], bababab) =M?(M’([q0],b), ababab) =M?(M?([q0], a), babab)=M?(M?([q1q2],b), abab) =M?(M?([q1],a), bab) =M?(M?([q0q1],b), ab) =M?(M?([q0], a), b) =M?([q1q2], b)=[q1] 因为[q1]∈F?, 所以,输入字符串bababab可为该DFA A?所接受。 输入字符串abababb M?([q0], abababb)=M?(M?([q0],a), bababb) =M?(M?([q1q2], b), ababb) =M?(M?([q1],a), babb)= M?(M?([q0q1],b), abb) = M?(M?([q0],a), bb) =M?(M?

文档评论(0)

1亿VIP精品文档

相关文档