自動機編程

自動機編程  是編程範式中的一種 ， 是指程式或其中的部份是以有限狀態機 （ FSM ） 爲模型的程式 ， 有些程式則會用其他型式 （ 也更復雜 ） 的自動機爲其模型 。 有限狀態機編程  大致上等同於自動機編程 ， 但有限狀態機編程專指以有限狀態機爲模型的程式 。 自動機編程有以下的二項特徵 ： 程式執行的時間中可以清楚劃分成數個自動機的步驟 （ step ） ， 每一個步驟即爲一個程式區段 ， 有單一的進入點 ， 可以是一個函數或其他程序 。 若有需要時 ， 程式區段可以再依其狀態的不同 ， 劃分爲子區段 。 不同步驟的程式區段只能透過一組清楚標示的變數交換資訊 ， 這些變數稱爲狀態 （ state ） ， 使用自動機編程的程式不能用其他不顯然可見的方式標示狀態 ， 例如區域變數的數值 、 回傳位址 、 目前程式指標的位置等 。 因此一程式在任二個不同時間下的差異 ， 只有狀態數值的不同 ， 其餘都相同 。 自動機編程的執行過程是一個由自動機步驟形成的循環 。 自動機編程中處理問題的思考方式很類似在利用圖靈機 、 馬爾可夫算法處理問題時的思考方式 。