程序是什么--过滤器和状态机
程序到底是什么?查閱現代漢語詞典其實就是做事的步驟,這是它本源的含義,但是現在很多人都會將它認為是計算機程序,其實計算機程序只是它的一種情況而已,作為做事的步驟,它的含義是什么?前面好像說過,它是一個過濾器,給它一個輸入,它會按照自己的邏輯給出一個輸出,這個意義上它確實是一個過濾器,它的實體就是過濾邏輯,這種說法十分正確,但是計算機程序僅僅這一種理解方式嗎?
其實將程序看做過濾器是按照以數據為中心的觀念來理解的,如果按照以處理過程為中心來理解的話,那么程序實際上是一個狀態機,因此可以將程序理解成過濾器或者狀態機,其實也就這兩種理解方式,因為和計算機處理過程相關聯的只有數據和過程兩個概念,本質上說,計算機程序就是處理數據的過程,從概念上講,它就是由數據和過程組成的,按照過程為中心的觀點,它確實是一個狀態機,程序流程隨著數據的改變而改變,老早以前我還沒有一個系統的架構觀念的時候我就說過,程序就是一個if-then-else的組合,包括我們的人腦也是這樣,程序在特定的輸入的情況下做出特定的反應,以過程為中心來理解就是進入不同的狀態,也就是進入不同的處理流程。以解析windows平臺的.ini文件為例,有[]括起來的組名,有[]之內的配置選項,有注釋,因此有類似下面幾種狀態轉換:讀到[的時候將狀態從等待轉換為讀組名,當讀到]的時候將狀態轉換為等待,當讀到任意非注釋字符的時候,將狀態從等待轉換為讀配置選項,當狀態在讀配置選項的時候讀到換行的時候,將狀態轉換為等待...理解了程序實際上是一個狀態機,解析再復雜的文件也會變得簡單,只要你能理解文件的格式,也就不要擔心你的程序在理解上會有困難,不光是解析特定格式的文件,實際上處理任何過程程序都是一個狀態機,這么理解吧,從程序開始到結束,實際上就是一系列的狀態轉換,最后轉換到退出。
我們的人腦怎么會是一個過濾器,國家主席下達的命令傳到村長這里就變了味,這就是過濾器!總結一下,如果以數據為中心,那么程序就是一個過濾器,如果以處理過程為中心,那么程序就是一個狀態機。
?本文轉自 dog250 51CTO博客,原文鏈接:http://blog.51cto.com/dog250/1274075
總結
以上是生活随笔為你收集整理的程序是什么--过滤器和状态机的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 读书感想--list/BSS等等
- 下一篇: RHCE-postfix