確定型有限自動機(DFA)

DFA 的語言(the language of a DFA)

接受一次只問一個字串;DFA 的語言則是綜觀全局的答案:它是機器所接受的所有字串聚在一起的集合。對機器 M,我們把這個集合寫成 L(M),讀作「M 的語言」或「M 所辨識的語言」。它是機器的全部行為,濃縮成單一一個集合。

形式上,L(M) = { w ∈ Σ* : δ-hat(q0, w) ∈ F }——字母表上每一個其唯一計算以落在接受狀態作結之字串的集合。說 DFA 辨識(或在語言的意義上「接受」)某個特定語言 A,精確地說就是 L(M) = A:機器接受 A 中的每個字串,並拒絕不在 A 中的每個字串。所以「辨識」是個雙向的承諾,不只是「接受好的那些」而已。

這是從機器通往語言的橋樑,也是整個領域的核心所在。一個語言若是某個 DFA M 的 L(M),就稱為正規語言;為一份規格設計 DFA,和把你想要的語言描述成 L(M),是同一件工作。注意 L(M) 可以是空的(當沒有字串被接受時)、有限的、或無限的(接受所有字串的機器其 L(M) = Σ*)——語言為無限並不需要無限多個狀態。

對「以 1 結尾」的 DFA,L(M) = { w ∈ {0,1}* : w 以符號 1 結尾 } = {1, 11, 01, 101, 111, ...},這是個由 2 狀態機器辨識的無限語言。不以 1 結尾的字串(如 0、10、ε)正是 L(M) 之外的那些。

L(M) = M 接受的所有字串;辨識 A 意指 L(M) = A 恰好成立。

辨識一個語言是雙向的要求:接受其中每個字串,「並且」拒絕其外的每個字串。一部接受了 A 的全部、卻也接受了額外字串的機器,並不辨識 A。

又稱
L(M)language recognised by a DFADFA 辨識的語言L(M)