湯普森構造法

湯普森構造法在計算機科學中是指一個能將正則表達式轉化爲一個與之等價的非確定有限狀態自動機 （ NFA ） 的算法 。 算法得到的NFA可以在編程中用於匹配一個正則表達式 ， 這也是正則表達式引擎實現的基本思路之一 。 正則表達式和非確定有限狀態自動機是形式語言的兩種不同的抽象表達方式 。 在諸如文本編輯器的高級 “ 查找和替換 ” 以及許多編程語言中 ， 人們都習慣使用正則表達式來表示字符串的匹配模式 。 然而 ， 當計算機執行匹配程序時 ， NFA卻是更加適合的一種格式 。 因此 ， 湯普森構造法有着重要的應用價值 ， 它實際上可以視作正則表達式到NFA的一個編譯器 。 而從理論角度上來說 ， 該算法實際上是正則表達式和NFA等價性證明的一部分 — — 事實上 ， 這兩種表述形式本質上都對應着相同的語言 ， 即正則語言 。 在應用中 ， 算法得到的NFA可以再次通過冪集構造和最小化的過程得到一個對應的最簡的確定有限狀態自動機 （ DFA ） ， 進而用於匹配正則表達式 。 但是有些情況下也會直接使用對應的NFA 。