《2.ppt编译原理3章3.pptVIP

  • 4
  • 0
  • 约 60页
  • 2017-01-01 发布于北京
  • 举报
《2.ppt编译原理3章3

其中转换函数D如下: D([T0],a)=[T1] (ε-closure(move(T0,a))={1,2,3,4,6,7,8}= T1) [ R1,R2,…,Ri]= ε-closure(move([S1,S2,…,Sj],a)) D([T0],b)=[T2] (ε-closure(move(T0,b))={1,2,4,5,6,7} = T2) D([T1],a)=[T1] (ε-closure(move(T1,a))={1,2,3,4,6,7,8}=T1) D([T1],b)=[T3] (ε-closure(move(T1,b))={1,2,4,5,6,7,9}=T3) D([T2],a)=[T1] (ε-closure(move(T2,a))={1,2,3,4,6,7,8}=T1) D([T2],b)=[T2] (ε-closure(move(T2,b))={1,2,4,5,6,7} = T2) D([T3],a)=[T1] (ε-closure(move(T3,a))={1,2,3,4,6,7,8} = T1) D([T3],b)=[T4] (ε-closure(move(T3,b))= {1,2, 4,5,6,7,10} = T4) D([T4],a)=[T1] (ε-closure(move(T4,a)) ={1,2,3,4,6,7,8}= T1) D([T4],b)=[T2] (ε-closure(move(T4,b)) ={1,2,4,5,6,7} = T2) 将[T0],[T1],[T2],[T3],[T4]用A,B,C,D,E表示 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 确定的有限自动机的最简化(最小化) 对任意一个DFA M构造另一个DFA M’,使L(M)=L(M’),并且M’的状态个数不多于M的状态个数。 首先我们介绍几个有关的概念: (1)多余状态:对于一个状态Si,若从开始状态出发,不可能到达该状态Si,则Si为多余(无用)状态 。 S1,S5,S6为多余状态 (2)死状态:对于一个状态Si,对任意输入符号a,若转到它本身后,不可能从它到达终止状态,则称Si为死状态。 (3)等价状态: 若Si为自动机的一个状态,我们把从Si出发能导出的所有符号串集合记为L(Si) 多余状态和死状态又称为无关状态。 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 设有两个状态Si和Sj,若有L(Si)=L(Sj),则称Si和Sj是等价状态。 从S1和S2能导出相同的符号串集合:L(S1)=L(S2)={b},所以S1和S2等价 (4)可区别状态:自动机中两个状态Si和Sj,如果它们不等价,则称它们是可区别的。 (5)两个状态(Si和Sj)等价的判断条件 (分类算法) ①状态Si和Sj必须同时为终止状态或同时为非终止状态。即终止状态和非终止状态是可区别的(粗分); 如,S0,S1,S2肯定与S3不等价 ②状态Si和Sj对于任意输入符号a∈Σ,必须转到等价的状态里,否则Si和Sj是可区别的。(a为区分依据,可以推广) 因f(S0,b)=S2,f(S2,b)=S3,而S2和S3不等价,故S0和S2也不等价 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. DFA的化简算法:对于DFA M=(S,Σ,f,S0,Z) (1)首先将DFA的状态集进行初始化,分成P=(Z,S-Z); (2) 用下面的过程对P构造新的划分Pnew for (P中每个组G) do //每个组都是一个状态集 begin 把G划分成小组,G中的任意两个状态Si和Sj在同一组中,当且仅当对于Σ中任意输入符号a ,Si和Sj的a转换是到同一组中,move(Si,a) ∈Gi ,move(Sj,a) ∈Gi。这样,只要Si和Sj的a转换是到不同的组中,则说明Si和Sj是可区别的,可进行划分。 在Pnew中用刚完成的对G的划分代替原来的G。 end ; P:

文档评论(0)

1亿VIP精品文档

相关文档