形式語言與編譯五 正則語言的三個性質


非正則語言

NFA、\(\varepsilon-NFA\) 面向人構造系統

DFA面向機器構造系統

自動機理論非常完美!!

自動機的表述有純數學形式的五元組形式(用來科學定義以及證明)、狀態轉移圖(用來直觀理解,也是一種數學工具)、狀態轉移表(編程用,用來定義數據結構比較好,面向計算機存儲)

喬姆斯基把語言進行分類,0型、1型、2型、3型

每一種語言都有對應的處理裝置:比如正則語言——有窮自動機 (正則表達式也行,以代數角度)、上下文無關語言——下推自動機0型語言——圖靈機

現階段我們還是研究正則語言為主

接下來以研究正則語言(3型)的性質為主。

首先要講額就是正則語言是有局限性的!!(而這個局限性就讓我們在以后有發現上下文無關語言(2型)、上下文有關(1型語言)、0型語言的興趣) 也就是其描述能力有限!!但是也要知道即使是更強的上下文無關文法,其描述能力也是受限的。

注意:這里我們衡量語言的描述能力,比較抽象,不好說。所以我們以語言對應處理裝置的自動機處理能力為標准衡量語言描述能力!!!

也就是0型語言對應的圖靈機處理能力是最強的!

正則語言性質:
  • 有限性
  • 封閉性
  • 判定性

有限性:

現在我們來看看,什么語言不能被正則語言對應的有限自動機處理

上面的B、C找不到正則表達式,也就找不到有限自動機(如果是正則語言,必然有它的處理裝置——正則表達式或者DFA)

D能找到DFA。。

也就是有些語言不是正則語言!!!

DFA中的F指的是有限狀態。而正則語言可能是有限的、也可能是無限的。我們的有限自動機理論厲害之處就是用有限的狀態竟然可以描述多達無窮的語言。可怕!! Nb!

有窮的描述來處理無窮的東西,太屌了!!

抽屜原理唄!

也就是串不能過長,串太長就不能滿足正則語言了(參考泵定理)

封閉性

如果有一個正則語言,那么在這個正則語言經過特定規定運算(並、連接、Kleene閉包)后仍然是正則的

在交、逆、同態、逆同態下也是封閉的

以數學方面的正則表達式方向證明:

有時候,用補語言的正則表達式我們可以分析出,但是類別太多,巨麻煩。換思路:自動機。我們可以試着寫出補語言的DFA,嘻嘻

上面對自動機求補,只能是DFA,不能對NFA求補

要是求NFA的補,先把NFA變成DFA,再對DFA求補

還要一點要記住,正則表達式不能直接轉化為DFA,他要通過NFA過渡,准確的說是\(\varepsilon\) -NFA。

逆也封閉,證明略

除此之外,還有冪次方、同態、逆同態也都是封閉的。證明略

duplicate運算不封閉

判定性

上面三個問題輸進來,判斷是否

  • w是否屬於L
  • L是否是空
  • L有窮或者無窮

可以判定語言是否是有窮還是無窮(因為有限自動機的有限指的是狀態數有限,語言集合有可能有窮,也有可能無窮)

給出正則語言,根據正則語言可以寫出自動機,然后對自動機做如下刪減,可以判定該自動機(或者說該正則語言)是有窮還是無窮。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM