编译原理练习.ppt

编译原理 ——练习1;练习1.1 基本概念;1.填充下面编译程序总框图; 对于∑上的每一个正规式V,存在一个∑上的DFA M,使得L(M) = L(V) 问题:如何由一个正规式V,构造一个DFA M 思路:分两步走 1.根据V,构造一个NFA M’,使得L(M’) = L(V) 2.将M’确定化,变为DFA M 第一步,在∑上构造一个NFA M’ (1)构造一个拓广的转换图 ; (2)使用分裂规则对V进行分裂,加进新结点,直到把图转换成每条弧上标识为∑上的一个字符或ε 最后得到一个NFA M’ 且L(M’) = L(V);第二步,把M’确定化 (1)两个概念 定义1:假定I是M’的状态集的子集,定义I的ε闭包ε_CLOSURE(I)为: (a)若q∈I,则q∈ε_CLOSURE(I) (b)若q∈I,那么从q出发经任意条ε弧而能到达的任何状态q’都属于ε_CLOSURE(I) ; 定义2:假定I是M’的状态集的子集,定义 Ia =ε_CLOSURE(J) 其中,J是所有那些可从I中的某一状态结点出发经过一条a弧而到达的状态结点的全体;例:有如下一个状态转换图 假定 I={1, 2},求Ia = ? 解: Ia =ε_CLOSURE(J) J = { } ε_CLOSURE(J) = { } Ia={5, 6, 2,

文档评论(0)

1亿VIP精品文档

相关文档