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