Thompson构造法

✍ dations ◷ 2025-06-09 23:49:27 #自动机,形式语言,算法

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

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

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

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

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

空表达式ε直接转化为:

直接转化为:

|可以转化为:

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

连接表达式可以转化为:

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

Kleene*闭包*可以转化为:

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

相关

  • 松果体松果体(又叫做松果腺、脑上体)是一个位于脊椎动物脑中的小内分泌腺体。人体最小的器官。它负责制造褪黑素,一种会对醒睡模式与(季节性)昼夜节律功能的调节产生影响的激素其形状像
  • 压电材料压电效应(英语:Piezoelectricity),是电介质材料中一种机械能与电能互换的现象。压电效应有两种,正压电效应及逆压电效应。压电效应在声音的产生和侦测,高电压的生成,电频生成,微量天
  • Jocelyn Bell乔丝琳·贝尔·伯奈尔女爵士,DBE,FRS,FRSE,FRAS(英语:Dame Jocelyn Bell Burnell, 1943年7月15日-),出生名苏珊·乔丝琳·贝尔(Susan Jocelyn Bell),英国天体物理学家,出生于贝尔法斯特。
  • 线人线人,又称线民,是向警方提供情报的人,或也可以指:
  • 蓬皮杜乔治·让·雷蒙·蓬皮杜(法语:Georges Jean Raymond Pompidou,1911年7月5日-1974年4月2日,法语发音.mw-parser-output .IPA{font-family:"Charis SIL","Doulos SIL","Linux Liber
  • 中国科学院上海技术物理研究所中国科学院上海技术物理研究所(英语:Shanghai Institute of Technical Physics, Chinese Academy of Sciences,简称上海技术物理研究所)是中华人民共和国一家主要关注红外物理与
  • 阿末安沙·阿兹曼阿末安沙·阿兹曼(马来语:Ahmad Amshay Azman,1992年8月28日-),马来西亚男子跳水运动员。他于2015年参加世界游泳锦标赛。一年后又参加了第31届夏季奥林匹克运动会。
  • 碲化铋碲化铋是一种灰色的粉末,分子式为Bi2Te3。碲化铋是个半导体暨热电材料,具有较好的导电性,但导热性较差。它是一种半导体,它与锑或硒合金是高效率的热电材料,用于制冷或便携式发电
  • 2017年美国联盟冠军赛2017年美国联盟冠军赛 (英语:ALCS) 是美国职棒大联盟季后赛第二轮的比赛,由美联外卡纽约洋基和美联西区冠军休士顿太空人展开对决(双方首次在美联冠军赛交手),最终太空人以4:3打
  • 鸠之泽温泉坐标:24°32′43″N 121°30′29″E / 24.5453779°N 121.5081831°E / 24.5453779; 121.5081831鸠之泽温泉,为台湾宜兰县大同乡太平村太平山国家森林游乐区内的一个温泉,位于