Thompson构造法

✍ dations ◷ 2025-02-24 02:00:23 #自动机,形式语言,算法

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

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

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

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

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

空表达式ε直接转化为:

直接转化为:

|可以转化为:

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

连接表达式可以转化为:

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

Kleene*闭包*可以转化为:

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

相关

  • 轻偏瘫轻偏瘫(英语:Hemi-paresis)是人体左右某一侧出现的麻痹的症状,最严重时将导致偏瘫(英语:Hemi-plegia),或称半身不遂,即半个身体的完全麻痹。这两种症状的成因有很多,既有先天原因也有
  • 次水杨酸铋次水杨酸铋为一种实验式为C7H5BiO4的胶状物,可通过水解水杨酸铋(Bi{C6H4(OH)CO2}3)得到。此物质实际结构未知,而化学式仅仅是近似推算出来的。近年来的研究显示,它是由水杨酸离子
  • 第三种性别非二元性别(英语:Non-binary gender)、性别酷儿(英语:genderqueer)和X性别(日语:Xジェンダー)是指一系列不完全是男性或女性的性别认同,这些身份在男性或女性的分类以外。非二元性别可
  • 纳波莱奥内·费拉拉纳波莱奥内·费拉拉(意大利语:Napoleone Ferrara,1956年7月26日-),出生于意大利卡塔尼亚,意大利血管生成研究人员,任职于加利福尼亚州的生物技术公司基因泰克。他于1981年毕业于卡塔
  • 圣尼古拉斯坐标:33°20′S 60°12′W / 33.333°S 60.200°W / -33.333; -60.200圣尼古拉斯(西班牙语:San Nicolás de los Arroyos)是阿根廷布宜诺斯艾利斯省巴拉那河畔的一座城市,人口137
  • 铋化氢铋化氢又称䏟,是由铋和氢组成,化学式为BiH3的化合物。铋化氢是所有结构和氨同为XH3的化合物中,分子量最大的一个。铋化氢不稳定,即使在摄氏零度以下,仍然会分解为铋和氢气。铋化
  • 王元 (数学家)王元(1930年4月30日-),原籍江苏丹徒,生于浙江兰溪,中国数学家,中国科学院院士。原籍江苏镇江丹徒,1930年4月30日生于浙江兰溪。1952年毕业于浙江大学数学系,师从苏步青教授。因成绩优
  • 非法传输非法传输指对有版权和著作权资料的无授权传输,是法律概念和电脑网络行为,属非法行为。非法下载主要指下列两种行为:非法上载或称非法分享,是非法下载进行的基础。非法下载通常不
  • 高圆宫宪仁亲王高圆宫宪仁亲王(1954年12月29日-2002年11月21日)是一位已逝世的日本皇室成员,为三笠宫崇仁亲王与王妃百合子所生的第三个儿子。也为昭和天皇的侄子、上皇明仁的堂弟。身位是亲王
  • 国家肖像美术馆澳洲国家肖像美术馆(The National Portrait Gallery of Australia),是由澳洲联邦政府成立的公共美术馆,位于澳洲首都特区堪培拉,邻近澳洲高等法院与澳洲国立美术馆。创立于1998年