Thompson构造法

✍ dations ◷ 2025-11-27 06:54:45 #自动机,形式语言,算法

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

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

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

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

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

空表达式ε直接转化为:

直接转化为:

|可以转化为:

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

连接表达式可以转化为:

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

Kleene*闭包*可以转化为:

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

相关

  • 体积(英语:Volume)是物件占有多少空间的量。体积的国际单位制是立方米。一件固体物件的体积是一个数值用以形容该物件在空间所占有的空间。一维空间物件(如线)及二维空间物件(如正
  • 超嗜热古菌超嗜热生物指能在极热的环境(60°C以上)中生活的生物。其生长最适温度通常在80~110°C,而2003年发现的一株古菌“菌株121”甚至能在和灭菌锅相同的温度,即121°C下,24个小时内,细
  • 弗吉尼亚城弗吉尼亚城(Virginia City)位于美国内华达州西部,是斯托里县的县治。
  • 本杰明·韦斯特本杰明·韦斯特 PRA(1738年10月10日-1820年3月11日),英格兰裔美国画家,以绘制历史画和美国独立战争场景知名。曾担任英国皇家艺术研究院第二任院长。英国皇室曾授予他骑士头衔,但
  • 汪忠一汪忠一(英语:Joey Chung-I Wang,1955年-),中华民国情治人员、外交官。毕业于国立台湾海洋大学海洋环境资讯学系学士、赴剑桥大学法律研究所进修,曾任驻美国台北经济文化代表处法务
  • 东疏大道新山东部疏散大道新山东部疏散大道 ,即EDL,简称新山东疏大道或东疏大道,(马来语:Lebuhraya Penyebaran Timur Johor Bahru;英语:Johor Bahru Eastern Dispersal Link Expressway),是
  • 东俾路支斯坦俾路支省(乌尔都语:بلوچستان‎‎)位于巴基斯坦西部,是该国四个省份之一。西邻伊朗锡斯坦-俾路支斯坦省,北邻阿富汗,南邻阿拉伯海,东边是旁遮普省和信德省。属于俾路支地区。
  • 阿布萨罗卡岭阿布萨罗卡岭(英语:Absaroka Range)是美国洛矶山脉的一条子山脉,顺着蒙大拿州-怀俄明州的边界绵延150英里(240千米),最宽处达75英里(121千米),组成了黄石国家公园的东界。山脉共有46座
  • 古矢彻古矢彻(ふるや とおる、1958年12月23日 - )是一位出身于日本东京都秋川市(现秋留野市)的总编辑、作家、评论家。东京都立国分寺高等学校、上智大学文学部新闻学科毕业。现在担任
  • 吴坤煌吴坤煌(1909年-1989年),笔名“梧叶生”、“北村敏夫”、“誉烔煌生”,是一位出身台湾南投的文学创作者。在就读台中师范学校时,吴坤煌因发起学运遭校方以退学处分。后来,他前往东京