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