Thompson构造法

✍ dations ◷ 2025-11-26 16:57:24 #自动机,形式语言,算法

Thompson构造法在计算机科学中是指一个能将正则表达式转化为一个与之等价的非确定有限状态自动机(NFA)的算法。算法得到的NFA可以在编程中用于匹配一个正则表达式,这也是正则表达式引擎实现的基本思路之一。

正则表达式和非确定有限状态自动机是形式语言的两种不同的抽象表达方式。在诸如文本编辑器的高级“查找和替换”以及许多编程语言中,人们都习惯使用正则表达式来表示字符串的匹配模式。然而,当计算机执行匹配程序时,NFA却是更加适合的一种格式。因此,Thompson构造法有着重要的应用价值,它实际上可以视作正则表达式到NFA的一个编译器。而从理论角度上来说,该算法实际上是正则表达式和NFA等价性证明的一部分——事实上,这两种表述形式本质上都对应着相同的语言,即正则语言。

在应用中,算法得到的NFA可以再次通过幂集构造和最小化的过程得到一个对应的最简的确定有限状态自动机(DFA),进而用于匹配正则表达式。但是有些情况下也会直接使用对应的NFA。

算法通过递归地将一个正则表达式划分成构成它的子表达式,在得到每个子表达式对应的NFA之后,根据子表达式之间的运算关系和一系列规则构造表达式自身对应的NFA。具体来说,这套构造规则如下所示 :

对于正则表达式为ε或者只由一个符号构成的情况,则无需继续递归,对应的NFA可以直接由下列规则给出:

空表达式ε直接转化为:

直接转化为:

|可以转化为:

可以直接到达()或()的初态。而()或()原来的终态也可以通过ε转移直接到达整个NFA的新终态。

连接表达式可以转化为:

()的初态成为新的NFA的初态。 原来()的终态成为()的初态。而原来()的终态成为新的NFA的终态。

Kleene*闭包*可以转化为:

()连接起来的ε转移使得可以选择经过或者不经过子表达式。而从()的终态到初态的ε转移使得可以重复任意多次。

相关

  • 理性的时代前苏格拉底 · 古代 中世纪 · 文艺复兴 17世纪 · 18世纪 · 19世纪 · 20世纪 后现代 · 当代17世纪哲学一般被认为是近代哲学的开端。中世纪的方法――尤其
  • 一个议院一院制是指国家的议会只设一个院的制度。在这种制度下,立法和通过议案比较简便,亦避免冗长的立法程序。
  • 威廉港威廉港(德语:Wilhelmshaven)人口大约8万人,是德国北海亚德湾沿岸的一个中型城市,也是德国第二大联州州下萨克森的一座无属县城市。威廉港市是下萨克森州的中心城市之一,2006年加入
  • 光电效应光电效应(英语:Photoelectric Effect)是指光束照射物体时会使其发射出电子的物理效应。发射出来的电子称为“光电子”。:1060-1063:1240-12461887年,德国物理学者海因里希·赫兹
  • 玄参玄参(学名:Scrophularia ningpoensis),又称作元参、乌元参、黑玄参、黑参。为玄参科玄参属下的一个种。玄参科玄参属植物,约200种。原产于北半球空旷林地。植株高大,花紫色,浅绿色
  • meta分析统计学上来说,元分析(meta-analysis,或译作后设分析、整合分析、综合分析、统合分析、荟萃分析)是指将多个研究结果整合在一起的统计方法。就用途而言,它是文献回顾的新方法。文
  • 鉨的同位素 鉨的同位素备注:画上#号的数据代表没有经过实验的证明,只是理论推测而已,而用括号括起来的代表数据不确定性。
  • 平视显示器平视显示器(英语:Head Up Display,缩写HUD)是一种目前普遍运用在航空器上的飞行辅助仪器。平视的意思是飞行员不需要低头就能够看到他需要的重要资讯。平视显示器最早出现在军用
  • 拉梅加布里埃尔·拉梅(Gabriel Lamé,1795年7月22日-1870年5月1日),法国数学家。拉梅年轻时学过法律,当过一家律师办事处的办事员。后来毕业于巴黎综合理工学院和巴黎高等矿业学校。18
  • 杨奇煜杨奇煜(1985年7月5日-),艺名小煜,曾为台湾男子演唱团体Lollipop@F的成员,亦是In% HAIR Salon&cafe 和 In% Mini Hair 的老板。 毕业于铭传大学国际贸易系,现就读醒吾科技大学全球