compiler-principle03_2.ppt

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
compiler-principle03_2

算法:NFA M=(S,Σ,δ,S0, F)→DFA M” = (S’,Σ,δ’,I0, F’) ①取I0=ε-closure(S0), 将I0加入到S’中,设I0为未标记 下图中: I0=ε-closure({X})={X,5,1} ②若状态集S’中存在有未标记的状态Ii=[S1,S2,…,Sj],则标记之,且求It=ε-closure(Move([Ii, a)),令δ’(Ii, a)=[r1,r2,…,rt] =It ,将It加入S’中,设It为未标记 下图中,标记I0: Ia=ε-closure(Move(I0,a))=ε-closure({5,3})={5,3,1}=I1 Ib=ε-closure(Move(I0,b))=ε-closure({5,4})={5,4,1}=I2 例: Y a X a a ε 5 ε b 1 3 4 a b b 2 ε 6 ε b 算法:NFA M=(S,Σ,δ,S0, F)→DFA M” = (S’,Σ,δ’,I0, F’) ③ 重复②,直至S’中没有未标记状态为止。 下图确定化: ε-closure(Move(I1,a))=ε-closure({5,2,3})={5,2,3,1,6,Y}=I3 ε-closure(Move(I1,b))=ε-closure({5,4})={5,4,1}=I2 ε-closure(Move(I2,a))=ε-closure({5,3})={5,3,1}=I1 ε-closure(Move(I2,b))=ε-closure({5,2,4})={5,2,4,1,6,Y}=I4 ε-closure(Move(I3,a))=ε-closure({5,2,3,6})={5,2,3,1,6,Y}=I3 ε-closure(Move(I3,b))=ε-closure({5,4,6})={5,4,6,1,Y}=I5 例: Y a X a a ε 5 ε b 1 3 4 a b b 2 ε 6 ε b ε-closure(Move(I4,a))=ε-closure({5,3,6})={5,3,1,6,Y}=I6 ε-closure(Move(I4,b))=ε-closure({5,2,4,6})={5,2,4,6,1,Y}=I4 ε-closure(Move(I5,a))={5,3,1,6,Y}=I6 ε-closure(Move(I5,b))={5,2,4,6,1,Y}=I4 ε-closure(Move(I6,a))={5,3,1,2,6,Y}=I3 ε-closure(Move(I6,b))={5,4,6,1,Y}=I5 S’={I0, I1, I2, I3, I4, I5, I6} 初态为I0, 终态为含有原终态的状态集。 F’={I∈S’ | I∩F≠?}={I3, I4, I5, I6} 例: Y a X a a ε 5 ε b 1 3 4 a b b 2 ε 6 ε b I0 I4 a I3 a a I6 a a b b I5 b 确定化后的DFA图: I Ia Ib I0 I1 I2 I1 I3 I2 I2 I1 I4 I3 I3 I5 I4 I6 I4 I5 I6 I4 I6 I3 I5 例: Y a X a a ε 5 ε b 1 3 4 a b b 2 ε 6 ε b a b I1 I2 b b b b b a 例:将下面NFA确定化。 10 a 0 a ε 7 ε b 1 3 5 b 6 ε 8 ε 2 4 ε ε b 9 ε ε 取I0=ε-closure({S0})= ε-closure({0})={0,1,2,4,7} 标记I0:ε-closure(Move(T0,a))=ε-closure({3,8})={1,2,3,4,6,7,8}=I1 ε-closure(Move(T0,b))=ε-closure({5})={1,2,4,5,6,7}=I2 标记T1:ε-closure(Move(I1,a))={1,2,3,4,6,7,8}=I1 ε-closure(Move(I1,b))={1,2,4,5,6,7,9}=I3 标记T2:ε-closure(Move(I2,a))={1,2,3,4,6,7,8}=I1 ε-closure(Move(I2,b))={1,2,4,5,6,7}=I2 标记T3:ε-closure(Move(I3,a))={1,2,3,4,6,7,8}=I1 ε-closure(Move(I3,b))={1,2,4,5,6,7,10}=I4 标记T4:ε-closure(Move(I4,a

文档评论(0)

l215322 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档