從結繩計算、算籌到計算尺,人類從遠古時期就已開始探索提高計算速度和效率的方法。
1642 年,法國數學家使用齒輪等配件制造了世界上第一臺機械式計算機——帕斯卡加法器,這是人類從手動計算時代進入機械式計算時代的里程碑。
1801 年,法國機械師將穿孔紙帶上的小孔用于自動提花機工作流程和步驟的控制, 這是現(xiàn)代計算機程序設計思想的萌芽。而紙帶上的“有孔”和“無孔”分別類似于二進制數的 0 和 1 ,是二進制數在機械控制中的早期應用。 1843 年,英國數學家查爾斯 · 巴貝奇受這種 “穿孔紙帶”控制思想的啟發(fā),設計了一種通用的自動計算機器——分析機。分析機以齒輪為主要部件,由蒸汽機提供動力,齒輪存放數據,通過齒輪間的嚙合完成計算,穿孔紙帶控制運算過程。雖然由于設計理念超越時代, 巴貝奇并沒有成功地制造出一臺實際可用的分析 機,但是分析機已經具備了現(xiàn)代計算機的某些基本特征,如:存放數據的齒輪相當于存儲器,齒輪嚙合完成了運算器的工作, 而穿孔紙帶則是控制機器工作流程的程序。
1854 年, 英國數學家布爾創(chuàng)立了布爾代數,這是現(xiàn)代計算機工作的重要理論基礎之 一。 1936 年,“人工智能之父”艾倫 ·麥席森 · 圖靈在其論文《論可計算數及其在判定問題 上的應用》中提出了算法(Algorithm)的概念和一種抽象計算機(Computing machine)模 型—— “圖靈機”。圖靈機的基本思想是用機器模擬人用紙筆進行計算的過程,是現(xiàn)代計算 機和人工智能領域的開端。
與圖靈同時代,被稱為“計算機之父”的美國數學家馮 ·諾依曼研究了離散變量自動電 子計算機(Electronic Discrete Variable Automatic Computer,EDVAC),并和他的研究小組發(fā) 表了“存儲程序的通用計算機方案”。該方案解決了計算機設計中的許多關鍵問題,其中三 個主要設計思想需要本書讀者掌握:
1)計算機采用的數制為二進制。采用二進制設計可降低計算機的結構復雜度。
2)計算機由五部分組成,包括運算器、控制器、存儲器、輸入設備和輸出設備。其 中,運算器可以完成各種算術和邏輯運算; 控制器能夠控制計算機的各部件協(xié)調工作;存儲 器用于存放程序指令和數據; 輸入和輸出設備用于實現(xiàn)人與計算機之間的交互。
3)計算機的工作原理是“存儲程序的原理”,即計算機工作之前, 程序與數據預先存放 在存儲器的存儲單元中;計算機工作時,控制器按照指令的存放順序(存儲單元的地址順 序)從存儲單元中讀取指令,然后分析并執(zhí)行指令;若被執(zhí)行的指令具有判斷或轉移的功 能,則根據判斷結果或轉移要求確定后續(xù)指令讀取的順序,從而控制指令的執(zhí)行順序;上述 過程將重復進行, 直到遇到停機指令。
“存儲程序的通用計算機方案”的提出標志著人類進入了電子計算機時代,是計算機科學發(fā)展的又一座里程碑。而按照該方案設計的計算機被稱為“馮 ·諾依曼機”,世界上的第 一臺通用計算機“埃尼阿克”(Electronic Numerical Integrator And Calculator,ENIAC)就是 按照該方案設計的。
從埃尼阿克起,微型計算機的發(fā)展經歷了電子管計算機、晶體管計算機、集成電路計算機和大規(guī)模集成電路計算機四個階段。電子管計算機以電子管為主要邏輯器件,使用磁鼓存儲數據,體積大、運算速度慢,編程語言為機器語言; 晶體管計算機以比電子管體積更小的 晶體管為主要器件,采用磁芯存儲器,速度快、價格昂貴,可以使用高級語言(如 FORTRAN 語言)進行程序設計;集成電路將多個元器件集成在一片半導體芯片上,以集成電路為主要邏輯器件的計算機體積更小、速度更快、功耗更低; 從 20 世紀 70 年代初開始至 今,計算機進入了大規(guī)模集成電路時代,一片半導體芯片上可以集成幾十萬甚至幾百萬個元器件,使得計算機的體積更小、價格更低、性能和可靠性更高。