「有限狀態機」在程式設計中有哪些應用?

時間 2021-05-29 22:59:07

1樓:

狀態是什麼?status

和屬性有什麼區別?property

型別又是什麼?type

大家知道物件object有屬性和行為

型別type是物件的「一種」屬性。

狀態也是一種物件的屬性。

那麼,狀態和型別的區別是什麼呢?

型別,往往是靜態的,不變的;

狀態,往往是動態的,可變的。

「型別,是不變的狀態;狀態是可變的型別」,可以這麼理解。

2樓:ayou

用作字串匹配

假設要從字串 T = abababacaba 中匹配 P = ababaca

一、先構造P的有限狀態機:

如何構造的呢:

狀態為0時,輸入a,可以匹配P的最大字首為a,則可以轉換到狀態1,其他輸入都轉換到狀態0

狀態為1時,輸入b(完整字串為ab),可以匹配P的最大字首為ab,轉換到狀態2,。輸入a(完整字串為aa),可以匹配P的最大字首為a,轉換到狀態1。輸入c(完整字串為ac),可以匹配P的最大字首為空,轉換到狀態0。

剩下的步驟類似

二、匹配過程

將T中的字元逐個輸入到狀態機中,若最後到達狀態7,則說明匹配成功

3樓:陳澈

地鐵裡ATP、聯鎖、區域控制器的程式裡全都是狀態機

由事件驅動狀態的變化

狀態機程式設計(SCADE中)最大限度避免了二手程式設計師們一堆if沒有else,一堆case沒有break這種XJB的跳轉

4樓:劉典

說乙個大家熟悉的不能再熟悉的例子,正規表示式(regexp),判斷字串格式和解析字串內容基本全靠她。其實正規表示式就是有限狀態機。只是表達形式不同。

正規表示式寫好後可以通過程式「編譯」成狀態轉換表,就是大家常見到的那種狀態轉換圖。

5樓:楊立鋼

我每天編寫、維護的程式都是圍繞著「有限狀態機」來設計與實現的。我想,對於電信行業網路核心軟體來說,「有限狀態機」思想是基石。MTP-2,MTP-3,TUP,ISUP,SCCP,TCAP,MAP,Q.

921,Q.931,SIP,H.323...

所有的協議定義都有明確的「有限狀態機」設計。

為了有效地描述使用「有限狀態機」,國際電信聯盟專門出台了一套標準——規格描述語言SDL(Specification and Description Language)。

6樓:Forwil

在編譯器設計中,詞法分析和語法分析都會用到...

另外,我猜大多數語言的正規表示式都是通過轉化為確定性有窮自動機來實現的..

如何深入理解「有限狀態機」的設計思想?

怎麼又邀我回答本科問題?為何不問教授呢?你付了學費,自然要善加利用學校的一切資源,包括教授。教授拿了你的學費,是要為你做事的。想要完全懂有限自動機,可以拿編譯器設計,等你第一次拆解 C 語法時,你就自然懂了。例如,濾掉所有的 和 的說明,用有限自動機就夠了。有限自動機有三大優點 一 O 1 的記憶體...

什麼是狀態機?

徐曉軼 這是計算理論中的內容,屬於IT的基礎理論,最好是找點這方面的書來看,我只能說點自己的體會。如果是計算理論中的狀態機,我記得應該有五元,包括狀態節點 轉移之類的,一般包括有限狀態機和無限狀態機,有限狀態機的計算能力等價於正則語言,無限狀態機用於描述非確定性問題,計算能力等價於自然語言 有些記不...

程序的本質是乙個狀態機嗎?

好的我不知道說什麼 可以肯定地說,程序的源頭不是狀態機。實際上,很可能任何東西你都可以解釋成 狀態機 大概的思路如下 劃分其狀態,例如,假如我們不考慮那些不能通過 開始 經過 結束 的事物。研究其在各個狀態中如何發生了到另一狀態的轉移,假如我們可以將狀態的內部的變化忽略,而且只需要關注 當前狀態 和...