[计算机]编译原理课件第2章
图2.5和图2.8所示的FA均识别以正规式(a|b)*abb所表示的正规集,两个FA是等价的。由于DFA上识别记号的确定性和简单性,往往希望用DFA而不是NFA来识别记号。很幸运,对于任何一个NFA,均可以找到一个与它等价的DFA。这一结果意味着,对任何正规集,均可以构造一个DFA去识别它。 2.4 从正规式到词法分析器 DFA和模拟DFA的算法2.1,实际上已经构成了词法分析器的基础,从而得到构造词法分析器的一般方法与步骤: ① 用正规式对模式进行描述; ② 为每个正规式构造一个NFA,它识别正规式所表示的正规集; ③ 将构造出的NFA转换成等价的DFA,这一过程也被称为确定化; ④ 优化DFA,使其状态数最少,这一过程也被称为最小化; ⑤ 从优化后的DFA构造词法分析器。 2.4.1 从正规式到NFA 对任何的正规式,可以用下述的Thompson算法构造一个NFA,它识别正规式所表示的正规集。 算法2.2 Thompson 算法 输入 字母表∑上的正规式r。 输出 接受L(r)的NFA N。 方法 首先,将r分解成最基本的正规式。由于分解是构造的逆过程,因此分解从正规式的最右端开
原创力文档

文档评论(0)