您現在的位置: 18luck新利全站下载 >> 管理信息化>> 信息技術>> 資料信息

計算機基礎知識講義(doc 19頁)

所屬分類:
信息技術
文件大小:
294 KB
下載地址:
相關資料:
計算機基礎, 基礎知識, 知識講義
計算機基礎知識講義(doc 19頁)內容簡介
計算機基礎知識講義內容提要:
忽視了硬件體係的長期穩定。這種穩定性使得很多習慣經驗變成了不言自明的信條。 大多數的軟件設計方法的革新隻不過是用舊石斧打造出來新石斧。在C中我們使用getc,putc來進行IO,在Java中無非是變成了 System.in.read(),System.out.print ()。為什麼IO必定是這種形式呢?這是因為我們長期使用著同一種計算機。我們知道PC/Mac這樣的計算機中CPU與IO設備進行通信,需要通過各種總 線。
以 C語言為代表的傳統的IO,實際上是單CPU上單任務工作模式的投影。在單台計算機上, 傳統計算機體係結構決定了CPU處於控製者和決策者的地位。換而言之,我們曆來習慣於以CPU的視角來考慮程序的IO邏輯.程序員是將自己假設為CPU. 程序員關心的IO設施隻是一個黑盒.我們隻需要往IO發送一個請求,然後等待請求回來進行運算,完全不關心這一來一回之間到底發生了什麼過程.
但是當我們打開黑盒,觀察CPU與IO的通信過程的時候, IO Monad就從幕後走向了台前。以總線的角度看,CPU和外設是等同的,都隻是一個具有運算能力和輸入輸出端口的黑盒.總線正如 Bind/>>=函數一樣不關心這些黑盒子裏如何運算的,它隻關心從這個黑盒拿數據出來放入那個黑盒. 從整個計算機的體係結構看,傳統的IO觀念隻不過是IO Monad的一個局部化形態。
IO Monad實則上在一些接近操作係統底層的軟件中,經常扮演者數據總線這種核心角色。比如說Unix/linux shell的管道命令就是徹頭徹尾的IO Monad. cat,命令是return/Unit函數,|管道符就是bind/>>=函數。例如:cat sample.txt|grep "High"|wc –l .cat 將sample.txt的文件內容包裝成stdout,|管道符將stdout的內容傳給grep 命令查詢所有單詞位High的行,查詢的結果又被轉化為stdout,再通過|管道符傳送給wc命令進行行數統計。微軟最新的Shell取名為 Monad,其言下之意恐怕無需贅述了.
不僅如此,IO Monad在結構化程序語言的最初演化的階段也殘留了一些蹤跡.很多古老的Pascal程序,都保留了在程序首部書寫Input Outpu參數的習慣.
…………
..............................

Baidu
map