Thompson构造法

✍ dations ◷ 2025-08-10 15:33:09 #自动机,形式语言,算法

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

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

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

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

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

空表达式ε直接转化为:

直接转化为:

|可以转化为:

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

连接表达式可以转化为:

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

Kleene*闭包*可以转化为:

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

相关

  • 原核延伸因子原核延伸因子(英语:Prokaryotic elongation factors)是原核细胞进行原核翻译的过程中所需的三种延伸因子,分别被命名为:EF-Tu、EF-Ts及EF-G(其中EF-Tu和EF-Ts可复合为EF-T)。原核
  • 闻邦椿闻邦椿(1930年9月-),中国工程机械专家。原籍浙江温岭,生于浙江杭州。1955年毕业于东北大学机电系,1957年毕业于该院机械系研究生班。东北大学教授。1991年当选为中国科学院院士(学
  • 2,5-二甲氧基-4-溴苯乙胺2,5-二甲氧基-4-溴苯乙胺(2,5-dimethoxy-4-bromophenethylamine,2C-B),一种隶属2C-X家族(英语:2C's)的致幻剂,由Alexander Shulgin于1974年合成,其制备与应用剂量(12-24mg)在PiHKAL一书
  • 长荣集团长荣集团(英语:EVERGREEN Group)是台湾一个以运输产业为核心的企业集团,该集团始建于1968年,乃由原本的长荣海运多角化发展而来。今日,该集团包括长荣海运、长荣国际储运、长荣航
  • 世界最大银行列表以下是根据有关世界上规模最大的银行的一系列列表,银行的规模大小由资产和市值决定。以下排名来自Relbanks于2017年做出的世界银行资产规模前20排名。注意,计算手法的不同可能
  • 性变异性变异可以说是一些雌性腹足类软体动物的生殖系统出现雄性特征的异常现象。雌性动物会长出阴茎和输精管,严重时甚至堵塞生殖孔,导致不育及胚胎夭折的情况。据广泛报导,性变异一
  • 那年夏天,宁静的海《那年夏天,宁静的海》(日语:あの夏、いちばん静かな海,英语:)是一部由北野武导演的于1991年发行的日本电影。这部电影与北野武先前的作品有所不同,片中没有警察和黑帮。但是他之后
  • 菲律宾活火山列表本表依据菲律宾火山学及地震学研究所(英语:Philippine Institute of Volcanology and Seismology)(PHIVOLCS)分类,列出菲律宾境内的活火山,记录近600年来有人类记录的火山喷发事件,
  • 爱德华·罗宾逊 (圣经学者)爱德华·罗宾逊(1794年4月10日-1863年1月27日)是一位美国圣经研究学者。他在美国和当时的世界圣经研究和圣经历史学术中心德国学习,翻译了古代文字和德文书籍。他的《古希腊文-
  • 小笠原忠脩小笠原忠脩(1595年2月4日—1615年6月3日)是安土桃山时代至江户时代初期的武将。信浓国松本藩的世嗣。父亲是小笠原秀政。母亲是登久姬(松平信康的女儿),因此是德川家康的曾外孙。