天天看點

《計算機科學導論》一1.4 曆史

本節書摘來華章計算機《計算機科學導論》一書中的第1章 ,第1.4節,[美]貝赫魯茲a. 佛羅贊(behrouz a. forouzan)著 劉藝劉哲雨等譯, 更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。

在本節,我們簡要回顧一下計算和計算機的曆史。我們将其分為三個階段。

1.4.1 機械計算機器(1930年以前)

在這個階段,人們發明了一些用來進行計算的機器,它們與計算機的現代概念幾乎沒有相似之處。

在17世紀,法國著名的數學家和實體學家布萊斯·帕斯卡(blaise pascal)發明了pascsline,一個用來進行加減運算的計算機器。到了20世紀,當尼克勞斯·沃思(niklaus wirth)發明了一種結構化的程式設計語言,他将其命名為pascal語言,用來紀念這位發明首台機械電腦的科學家。

在17世紀後期,德國數學家戈特弗裡德·萊布尼茨(gottfried leibnitz)發明了既能夠做乘除運算又能做加減運算的一台更加複雜的計算機器。這台機器被稱為萊布尼茨之輪(leibnitz抯 wheel)。

第一台利用存儲和程式設計概念的機器是雅卡爾提花織機(jacquard loom),它是由約瑟夫-瑪麗·雅卡爾(joseph-marie jacquard)在19世紀初期發明的。這種織布機是利用穿孔卡(類似于存儲程式)來控制在織布過程中經線的提升。

1823年,查爾斯·巴比奇(charles babbage)發明了一種差分引擎,它不僅能夠很容易地進行數學運算,還可以解多項式方程。後來,他發明了一種叫做分析引擎的機器,在某種程度上和現代計算機的概念類似。該機器有4個組成部分,一個制造場(現在的算術邏輯單元)、一個存儲單元(存儲器)、一個操作者(控制單元)和輸出單元(輸入/輸出)。

1890年,在美國人口普查辦公室工作的赫爾曼·何勒裡斯(herman hollerith)設計并制造出具有程式設計能力的機器,該機器可以自動閱讀、計數和排列存儲在穿孔卡上的資料。

1.4.2 電子計算機的誕生(1930~1950年)

1930~1950年,那些被視為電子計算機工業先驅的科學家們發明了一些計算機。

1.早期的電子計算機

這一時期的早期計算機并不是将程式存儲到存儲器中,所有的計算機都是在外部進行程式設計的。有以下5種比較傑出的計算機:

第一台用來完成特定任務的計算機是通過将資訊進行電子編碼來實作其功能的,它是由約翰·阿塔納索夫(john v. atanasoff)及其助手克利福德·貝裡(clifford berry)于1939年發明的。它又被稱為abc(atanasoff berry computer),主要用于實作解線性方程的系統。

在同一時期,名為康拉德·朱斯(konrad zuse)的德國數學家設計出通用計算機,并命名為“z1”。

在20世紀30年代,美國海軍和ibm公司在哈佛大學發起建立了一項工程,在霍華德·艾肯(howard aiken)的直接上司下發明建造了一台名為markⅠ的巨型計算機。這種計算機既使用了電子部件,也使用了機械部件。

在英國,阿蘭·圖靈發明了一台名為巨人(colossus)的計算機,這台計算機是為破譯德國enigma密碼而設計的。

第一台通用的、完全電子的計算機由約翰·莫奇勒(john mauchly)和普雷斯波·埃克特(j. presper eckert)發明,這台計算機被稱為eniac(electronic numerical integrator and calculator,電子數字內建器和電腦)。它是在1946年完成設計的,利用了将近18 000個內建塊,有100英尺長,10米英尺高,重達30噸。

2.基于馮·諾依曼模型的計算機

前面5種計算機的存儲單元僅僅用來存放資料。它們利用配線或開關進行外部程式設計。馮·諾依曼提出了程式和資料應該存儲在存儲器中。按照這種方法,每次使用計算機來完成一項新的任務。你隻需要改變程式,而不用重新布線或者調節成百上千的開關。

第一台基于馮氏思想的計算機于1950年在賓夕法尼亞大學誕生,命名為edvac。與此同時,英國劍橋大學的莫裡斯·威爾克斯(maurice wilkes)制造了同樣類型的被稱為edsac的計算機。

1950年以後出現的計算機都差不多基于馮·諾依曼模型。它們變得更快、更小、更便宜,但原理幾乎是相同的。曆史學家将這一時期劃分為幾代,每一代計算機的改進主要展現在硬體或軟體方面(而不是模型)。

1.第一代計算機

第一代計算機(大約1950~1959年)以商用計算機的出現為主要特征。在這個時期,計算機隻有專家們才能使用。它們被鎖在房子裡,限制操作者和計算機專家以外的人員進入。計算機體積龐大,且使用真空管作為電子開關。此時的計算機隻有大的機構才能負擔得起。

2.第二代計算機

第二代計算機(大約1959~1965年)使用半導體代替真空管。這既減小了計算機的體積,也節省了開支,進而使得中小型企業也可以負擔得起。fortran和cobol(參見第9章)兩種進階計算機程式設計語言的發明使得程式設計更加容易。這兩種語言将程式設計任務和計算機運算任務分離開來。一個土木工程師能夠直接編寫一個fortran程式來解決問題,而不必涉及計算機結構中的具體電子細節。

3.第三代計算機

內建電路(半導體、導線以及其他部件做在一塊單晶片上)的發明更加減少了計算機的成本和大小。小型計算機出現在市場上。封裝的程式,就是通常所說的軟體包也已經有售。小型公司可以買到需要的軟體包(如會計程式),而不必寫自己的程式。一個新的工業—軟體工業就此誕生了。這個時期大概從1965年持續到1975年。

4.第四代計算機

第四代計算機(大約1975~1985年)出現了微型計算機。第一個桌面電腦(altair 8800)出現在1975年。電子工業的發展允許整個計算機子系統做在單塊電路闆上。這一時代還出現了計算機網絡(參見第6章)。

5.第五代計算機

這個還未終止的時代始于1985年。這個時代見證了掌上計算機和台式計算機的誕生、第二代存儲媒體(cd-rom、dvd等)的改進、多媒體的應用以及虛拟現實作象。