1.前言
许多文本编辑程序使用的策略是根据一个正则表达式构造出相应的然后使用类似于
(即边构造边使用的)的子集构造法来模拟这个
的执行。这种模拟执行方法将在下面给出。
模拟一个NFA的执行
输入:一个以文件结束符eof结尾的输入串。一个NFA
,其开始状态为
,接受状态集为
,转换函数为
。
输出:如果接受
则返回“
”,否则返回“
”。
方法:这个算法保存了一个当前状态的集合,即那些可以从
开始沿着标号为当前已读入输入部分的路径到达的状态的集合。如果
是函数
读到的下一个输入字符,那么我们首先计算
,然后使用
求出这个集合的闭包。该算法的思想如下算法1-1所示。
1)S = ;
2)