编译原理实验:
掌握THOMPSON 算法原理和方法
输入字母表∑上的一个正规表达式r。,输出接受L(r)的NFA
规则1:
对ε构造NFA
Start ε
规则2:
对于∑中的每个符号a构造NFA
Start a
规则3:
如果N()和N()是正规表达式s和t的NFA
(a)、对于正规表达式s|t,可构造复合的NFA N(s|t)如下:
N(s)
ε ε
Start
ε
N(t) ε
(b)、对于正规表达式st,可构造复合的NFA N(st)如下:
Start N(t) N(s)
(c)、对于正规表达式s*,可构造复合的NFA N(s*)如下:
ε
start ε N(s) ε
ε
(d)、对于正规表达式(s),可使用N(s)本身作为它的NFA
1