编译原理:状态机相关的三种算法
有穷自动机 为了实现对于正规式(可理解为正则表达式)的识别,我们提出了有穷自动机理论,有穷自动机接受正规式的定义符,并不断的识别符号,移动到新的状态,如果出现了识别错误就会报错。 有穷自动机包含确定的有穷自动机(DFA),和不确定的有穷自动机(NFA)。两者的主要区别在于,在同一个状态时,是否通过同样的符号输入能达到不同的状态。如果能就是不确定的,反之就是确定的。另外:NFA还可以接受空字串已达到不同的状态。 三个主要的算法 这其中有三个主要的算法: 正规式 => NFA Thompson算法 这个算法使用了一些模版去对应正则表达式中的符号,只要记住模版,就能推出相应的NFA。