Thompson构造法

✍ dations ◷ 2025-07-19 07:02:52 #自动机,形式语言,算法

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

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

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

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

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

空表达式ε直接转化为:

直接转化为:

|可以转化为:

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

连接表达式可以转化为:

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

Kleene*闭包*可以转化为:

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

相关

  • 前大爆炸理论大爆炸又称大霹雳(英语:Big Bang),是描述宇宙的源起与演化的宇宙学模型,这一模型得到了当今科学研究和观测最广泛且最精确的支持。宇宙学家通常所指的大爆炸观点为:宇宙是在过去有
  • 酥油酥油是以驯养的犛牛(学名:Bos grunniens)之产乳制成的奶油。它是中亚南部和青藏高原的放牧人家最重要的主食和贸易食品之一。酥油脂质含量是牛奶的两倍,口感近似起司甚于奶油。
  • 生物制品部门Biopreparat(俄语:Биопрепарат,IPA:.mw-parser-output .IPA{font-family:"Charis SIL","Doulos SIL","Linux Libertine","Segoe UI","Lucida Sans Unicode","Code200
  • 华通氏胶华通氏胶(Wharton's Jelly)为构成脐带的凝胶状物质,主要成分是黏多糖(Mucopolysaccharides),也含有成纤维细胞和巨噬细胞,是一种黏膜组织。当婴儿分娩后,温度的改变使华通氏胶内部的
  • 半影月全食半影月全食(英语:Total penumbral lunar eclipse)指的是半影月食发生时,月球盘面会完全进入地球半影,但不会进入地球本影的月食。因此半影月全食在食甚时月面亮度会最低,食甚时间
  • 庇护权庇护权或政治庇护,是一种古老的司法概念,此概念认为因政治或宗教信仰不同而被迫害的人可受到其它主权势力的庇护,可为教堂(中世纪时的圣所)、其它国家的领土或外交代表机构。政治
  • 镰田正威镰田正威(1885年8月7日-1935年8月8日)是台湾日治时代台湾总督府的官员,曾任明石元二郎总督之秘书官,日本香川县出身。明治18年(1885年)生于香川县绫歌郡坂出町(现 坂出市)。明治43年(1
  • 马卡蒂马卡蒂(英语:Makati),又译马卡迪、马卡第、马加智(闽南语白话字:Má-ka-tì)是组成菲律宾马尼拉大都会的16座城市之一。马卡蒂是菲律宾的金融中心,全国最高密度的国际企业与本地企业
  • 沙峡谷沙峡谷(英语:Sand Canyon)是位于美国加利福尼亚州洛杉矶县的一个非建制地区。该地的面积和人口皆未知。沙峡谷的座标为34°42′47″N 118°08′30″W / 34.71306°N 118.14167
  • 促甲状腺激素受体2XWT, 3G04· G-protein coupled receptor signaling pathway, coupled to cyclic nucleotide second messenger · cell-cell signaling 促甲状腺激素受体(英语:thyrotropi