計算工具的發展簡史
阿新 • • 發佈:2019-02-09
很快 聯系 編碼 sao vnc 明顯 中間 然而 操作 現在我們所說的計算機,其全稱是通用電子數字計算機,“通用”是指計算機可服務於多種用途,“電子”是指計算機是一種電子設備,“數字”是指在計算機內部一切信息均用0和1的編碼來表示。計算機的出現是20世紀最卓越的成就之一,計算機的廣泛應用極大地促進了生產力的發展。
自古以來,人類就在不斷地發明和改進計算工具,從古老的“結繩記事”,到算盤、計算尺、差分機,直到1946年第一臺電子計算機誕生,計算工具經歷了從簡單到復雜、從低級到高級、從手動到自動的發展過程,而且還在不斷發展。回顧計算工具的發展歷史,從中可以得到許多有益的啟示。
1. 手動式計算工具
人類最初用手指進行計算。人有兩只手,十個手指頭,所以,自然而然地習慣用手指記數並采用十進制記數法。用手指進行計算雖然很方便,但計算範圍有限,計算結果也無法存儲。於是人們用繩子、石子等作為工具來延長手指的計算能力,如中國古書中記載的“上古結繩而治”,拉丁文中“Calculus”的本意是用於計算的小石子。
最原始的人造計算工具是算籌,我國古代勞動人民最先創造和使用了這種簡單的計算工具。算籌最早出現在何時,現在已經無法考證,但在春秋戰國時期,算籌使用的已經非常普遍了。根據史書的記載,算籌是一根根同樣長短和粗細的小棍子,一般長為13~14cm,徑粗0.2~0.3cm,多用竹子制成,也有用木頭、獸骨、象牙、金屬等材料制成的,如圖1所示。算籌采用十進制記數法,有縱式和橫式兩種擺法,這兩種擺法都可以表示1、2、3、4、5、6、7、8、9九個數字,數字0用空位表示,如圖2所示。算籌的記數方法為:個位用縱式,十位用橫式,百位用縱式,千位用橫式,……,這樣從右到左,縱橫相間,就可以表示任意大的自然數了。
圖1 算籌
圖2 算籌的擺法
圖3 算盤
圖4 納皮爾算籌
計算工具發展史上的第一次重大改革是算盤,也是我國古代勞動人民首先創造和使用的。算盤由算籌演變而來,並且和算籌並存競爭了一個時期,終於在元代後期取代了算籌。算盤輕巧靈活、攜帶方便,應用極為廣泛,先後流傳到日本、朝鮮和東南亞等國家,後來又傳入西方。算盤采用十進制記數法並有一整套計算口訣,例如“三下五除二”、“七上八下”等,這是最早的體系化算法。算盤能夠進行基本的算術運算,是公認的最早使用的計算工具。
1617年,英國數學家約翰·納皮爾(John Napier)發明了Napier乘除器,也稱Napier算籌,如圖4所示。Napier算籌由十根長條狀的木棍組成,每根木棍的表面雕刻著一位數字的乘法表,右邊第一根木棍是固定的,其余木棍可以根據計算的需要進行拼合和調換位置。Napier算籌可以用加法和一位數乘法代替多位數乘法,也可以用除數為一位數的除法和減法代替多位數除法,從而大大簡化了數值計算過程。
1621年,英國數學家威廉·奧特雷德(William Oughtred)根據對數原理發明了圓形計算尺,也稱對數計算尺。對數計算尺在兩個圓盤的邊緣標註對數刻度,然後讓它們相對轉動,就可以基於對數原理用加減運算來實現乘除運算。17世紀中期,對數計算尺改進為尺座和在尺座內部移動的滑尺。18世紀末,發明蒸汽機的瓦特獨具匠心,在尺座上添置了一個滑標,用來存儲計算的中間結果。對數計算尺不僅能進行加、減、乘、除、乘方、開方運算,甚至可以計算三角函數、指數函數和對數函數,它一直使用到袖珍電子計算器面世。即使在20世紀60年代,對數計算尺仍然是理工科大學生必須掌握的基本功,是工程師身份的一種象征。圖5所示是1968年由上海計算尺廠生產的對數計算尺。
圖5 對數計算尺
2. 機械式計算工具
17世紀,歐洲出現了利用齒輪技術的計算工具。1642年,法國數學家帕斯卡(Blaise Pascal)發明了帕斯卡加法器,這是人類歷史上第一臺機械式計算工具,其原理對後來的計算工具產生了持久的影響。如圖6所示,帕斯卡加法器是由齒輪組成、以發條為動力、通過轉動齒輪來實現加減運算、用連桿實現進位的計算裝置。帕斯卡從加法器的成功中得出結論:人的某些思維過程與機械過程沒有差別,因此可以設想用機械來模擬人的思維活動。
德國數學家萊布尼茨(G .W .Leibnitz)發現了帕斯卡一篇關於“帕斯卡加法器”的論文,激發了他強烈的發明欲望,決心把這種機器的功能擴大為乘除運算。1673年,萊布尼茨研制了一臺能進行四則運算的機械式計算器,稱為萊布尼茲四則運算器,如圖7所示。這臺機器在進行乘法運算時采用進位-加(shift-add)的方法,後來演化為二進制,被現代計算機采用。
圖6 帕斯卡加法器
圖7 萊布尼茨四則運算器
萊布尼茨四則運算器在計算工具的發展史上是一個小高潮,此後的一百多年中,雖有不少類似的計算工具出現,但除了在靈活性上有所改進外,都沒有突破手動機械的框架,使用齒輪、連桿組裝起來的計算設備限制了它的功能、速度以及可靠性。
1804年,法國機械師約瑟夫·雅各(Joseph Jacquard)發明了可編程織布機,通過讀取穿孔卡片上的編碼信息來自動控制織布機的編織圖案,引起法國紡織工業革命。雅各織布機雖然不是計算工具,但是它第一次使用了穿孔卡片這種輸入方式。如果找不到輸入信息和控制操作的機械方法,那麽真正意義上的機械式計算工具是不可能出現的。直到20世紀70年代,穿孔卡片這種輸入方式還在普遍使用。
19世紀初,英國數學家查爾斯·巴貝奇(Charles Babbage)取得了突破性進展。巴貝奇在劍橋大學求學期間,正是英國工業革命興起之時,為了解決航海、工業生產和科學研究中的復雜計算,許多數學表(如對數表、函數表)應運而生。這些數學表雖然帶來了一定的方便,但由於采用人工計算,其中的錯誤很多。巴貝奇決心研制新的計算工具,用機器取代人工來計算這些實用價值很高的數學表。
1822年,巴貝奇開始研制差分機,專門用於航海和天文計算,在英國政府的支持下,差分機歷時10年研制成功,這是最早采用寄存器來存儲數據的計算工具,體現了早期程序設計思想的萌芽,使計算工具從手動機械躍入自動機械的新時代。
1832年,巴貝奇開始進行分析機的研究。在分析機的設計中,巴貝奇采用了三個具有現代意義的裝置:
⑴ 存儲裝置:采用齒輪式裝置的寄存器保存數據,既能存儲運算數據,又能存儲運算結果;
⑵ 運算裝置:從寄存器取出數據進行加、減、乘、除運算,並且乘法是以累次加法來實現,還能根據運算結果的狀態改變計算的進程,用現代術語來說,就是條件轉移;
⑶ 控制裝置:使用指令自動控制操作順序、選擇所需處理的數據以及輸出結果。
巴貝奇的分析機是可編程計算機的設計藍圖,實際上,我們今天使用的每一臺計算機都遵循著巴貝奇的基本設計方案。但是巴貝奇先進的設計思想超越了當時的客觀現實,由於當時的機械加工技術還達不到所要求的精度,使得這部以齒輪為元件、以蒸汽為動力的分析機一直到巴貝奇去世也沒有完成。
圖8 巴貝奇差分機
3. 機電式計算機
1886年,美國統計學家赫爾曼·霍勒瑞斯(Herman Hollerith)借鑒了雅各織布機的穿孔卡原理,用穿孔卡片存儲數據,采用機電技術取代了純機械裝置,制造了第一臺可以自動進行加減四則運算、累計存檔、制作報表的制表機,這臺制表機參與了美國1890年的人口普查工作,使預計10年的統計工作僅用1年零7個月就完成了,是人類歷史上第一次利用計算機進行大規模的數據處理。霍勒瑞斯於1896年創建了制表機公司TMC公司,1911年,TMC與另外兩家公司合並,成立了CTR公司。1924年,CTR公司改名為國際商業機器公司(International Business Machines Corporation),這就是赫赫有名的IBM公司。
1938年,德國工程師朱斯(K.Zuse)研制出Z-1計算機,這是第一臺采用二進制的計算機。在接下來的四年中,朱斯先後研制出采用繼電器的計算機Z-2、Z-3、Z-4。Z-3是世界上第一臺真正的通用程序控制計算機,不僅全部采用繼電器,同時采用了浮點記數法、二進制運算、帶存儲地址的指令形式等。這些設計思想雖然在朱斯之前已經提出過,但朱斯第一次將這些設計思想具體實現。在一次空襲中,朱斯的住宅和包括Z-3在內的計算機統統被炸毀。德國戰敗後,朱斯流亡到瑞士一個偏僻的鄉村,轉向計算機軟件理論的研究。
圖9 制表機用於美國人口普查
圖10 Z系列計算機
1936年,美國哈佛大學應用數學教授霍華德·艾肯(Howard Aiken)在讀過巴貝奇和愛達的筆記後,發現了巴貝奇的設計,並被巴貝奇的遠見卓識所震驚。艾肯提出用機電的方法,而不是純機械的方法來實現巴貝奇的分析機。在IBM公司的資助下,1944年研制成功了機電式計算機Mark-I。Mark-I長15.5米,高2.4米,由75萬個零部件組成,使用了大量的繼電器作為開關元件,存儲容量為72個23位十進制數,采用了穿孔紙帶進行程序控制。它的計算速度很慢,執行一次加法操作需要0.3秒,並且噪聲很大。盡管它的可靠性不高,仍然在哈佛大學使用了15年。 Mark-I只是部分使用了繼電器,1947年研制成功的計算機Mark-Ⅱ全部使用繼電器。
圖11 Mark-I
艾肯等人制造的機電式計算機,其典型部件是普通的繼電器,繼電器的開關速度是1/100秒,使得機電式計算機的運算速度受到限制。20世紀30年代已經具備了制造電子計算機的技術能力,機電式計算機從一開始就註定要很快被電子計算機替代。事實上,電子計算機和機電式計算機的研制幾乎是同時開始的。
4. 電子計算機
1939年,美國依阿華州大學數學物理學教授約翰·阿塔納索夫(John Atanasoff)和他的研究生貝利(Clifford Berry)一起研制了一臺稱為ABC(Atanasoff Berry Computer)的電子計算機。由於經費的限制,他們只研制了一個能夠求解包含30個未知數的線性代數方程組的樣機。在阿塔納索夫的設計方案中,第一次提出采用電子技術來提高計算機的運算速度。
第二次世界大戰中,美國賓夕法尼亞大學物理學教授約翰"莫克利(John Mauchly)和他的研究生普雷斯帕"埃克特(Presper Eckert)受軍械部的委托,為計算彈道和射擊表啟動了研制ENIAC(Electronic Numerical Integrator and Computer)的計劃,1946年2月15日,這臺標誌人類計算工具歷史性變革的巨型機器宣告竣工。ENIAC是一個龐然大物,共使用了18 000多個電子管、1 500多個繼電器、10 000多個電容和7 000多個電阻,占地167平方公尺,重達30噸。ENIAC的最大特點就是采用電子器件代替機械齒輪或電動機械來執行算術運算、邏輯運算和存儲信息,因此,同以往的計算機相比,ENIAC最突出的優點就是高速度。ENIAC每秒能完成5 000次加法,300多次乘法,比當時最快的計算工具快1 000多倍。ENIAC是世界上第一臺能真正運轉的大型電子計算機,ENIAC的出現標誌著電子計算機(以下稱計算機)時代的到來。
雖然ENIAC顯示了電子元件在進行初等運算速度上的優越性,但沒有最大限度地實現電子技術所提供的巨大潛力。ENIAC的主要缺點是:第一,存儲容量小,至多存儲20個10位的十進制數;第二,程序是“外插型”的,為了進行幾分鐘的計算,接通各種開關和線路的準備工作就要用幾個小時。新生的電子計算機需要人們用千百年來制造計算工具的經驗和智慧賦予更合理的結構,從而獲得更強的生命力。
1945年6月,普林斯頓大學數學教授馮"諾依曼(Von Neumann)發表了EDVAC(Electronic Discrete Variable Computer,離散變量自動電子計算機)方案,確立了現代計算機的基本結構,提出計算機應具有五個基本組成成分:運算器、控制器、存儲器、輸入設備和輸出設備,描述了這五大部分的功能和相互關系,並提出“采用二進制”和“存儲程序”這兩個重要的基本思想。迄今為止,大部分計算機仍基本上遵循馮"諾依曼結構。
需要強調的是,EDVAC方案是集體智慧的結晶,馮"諾依曼的偉大功績在於他運用雄厚的數理知識和非凡的分析、綜合能力,在EDVAC的總體配置和邏輯設計中起到了關鍵的作用。可以說,現代計算機的發明決不是僅憑傑出科學家的個人努力就能完成的事業,研制電子計算機不僅需要巨大的資金,而且需要數學家、邏輯學家、電子工程師以及組織管理人員的密切合作,需要團隊的共同努力。
二、計算機發展簡史
計算機系統由計算機硬件和計算機軟件構成,計算機硬件是指構成計算機系統的所有物理器件(集成電路、電路板以及其他磁性元件和電子元件等)、部件和設備(控制器、運算器、存儲器、輸入輸出設備等)的集合,計算機軟件是指用程序設計語言編寫的程序,以及運行程序所需的文檔、數據的集合。自計算機誕生之日起,人們探索的重點不僅在於建造運算速度更快、處理能力更強的計算機,而且在於開發能讓人們更有效地使用這種計算設備的各種軟件。
1. 計算機硬件的發展簡史
計算機硬件的發展以用於構建計算機硬件的元器件的發展為主要特征,而元器件的發展與電子技術的發展緊密相關,每當電子技術有突破性的進展,就會導致計算機硬件的一次重大變革。因此,計算機硬件發展史中的“代”通常以其所使用的主要器件,即電子管、晶體管、集成電路、大規模集成電路和超大規模集成電路來劃分。
第一代計算機(1946-1958)
第一代計算機以1946年ENIAC的研制成功為標誌。這個時期的計算機都是建立在電子管基礎上,笨重而且產生很多熱量,容易損壞;存儲設備比較落後,最初使用延遲線和靜電存儲器,容量很小,後來采用磁鼓(磁鼓在讀/寫臂下旋轉,當被訪問的存儲器單元旋轉到讀/寫臂下時,數據被寫入這個單元或從這個單元中讀出),有了很大改進;輸入設備是讀卡機,可以讀取穿孔卡片上的孔,輸出設備是穿孔卡片機和行式打印機,速度很慢。在這個時代將要結束時,出現了磁帶驅動器(磁帶是順序存儲設備,也就是說,必須按線性順序訪問磁帶上的數據),它比讀卡機快得多。
1949年5月,英國劍橋大學莫裏斯·威爾克斯(Maurice Wilkes)教授研制了世界上第一臺存儲程序式計算機EDSAC(Electronic Delay Storage Automatic Computer),它使用機器語言編程,可以存儲程序和數據並自動處理數據,存儲和處理信息的方法開始發生革命性變化。1951年問世的UNIVAC因準確預測了1952年美國大選艾森豪威爾的獲勝,得到社會各階層的認識和歡迎。1953年,IBM公司生產了第一臺商業化的計算機IBM701,使計算機向商業化邁進。
這個時期的計算機非常昂貴,而且不易操作,只有一些大的機構,如政府和一些主要的銀行才買得起,這還不算容納這些計算機所需要的可控制溫度的機房和能夠進行計算機編程的技術人員。
第二代計算機(1959-1964)
第二代計算機以1959年美國菲爾克公司研制成功的第一臺大型通用晶體管計算機為標誌。這個時期的計算機用晶體管取代了電子管,晶體管具有體積小、重量輕、發熱少、耗電省、速度快、價格低、壽命長等一系列優點,使計算機的結構與性能都發生了很大改變。
20世紀50年代末,內存儲器技術的重大革新是麻省理工學院研制的磁芯存儲器,這是一種微小的環形設備,每個磁芯可以存儲一位信息,若幹個磁芯排成一列,構成存儲單元。磁芯存儲器穩定而且可靠,成為這個時期存儲器的工業標準。
這個時期的輔助存儲設備出現了磁盤,磁盤上的數據都有位置標識符——稱為地址,磁盤的讀/寫頭可以直接被送到磁盤上的特定位置,因而比磁帶的存取速度快得多。
20世紀60年代初,出現了通道和中斷裝置,解決了主機和外設並行工作的問題。通道和中斷的出現在硬件的發展史上是一個飛躍,使得處理器可以從繁忙的控制輸入/輸出的工作中解脫出來。
這個時期的計算機廣泛應用在科學研究、商業和工程應用等領域,典型的計算機有IBM公司生產的IBM7094和CDC(Control Data Corporation,控制數據公司)生產的CDC1640等。但是,第二代計算機的輸入輸出設備很慢,無法與主機的計算速度相匹配。這個問題在第三代計算機中得到了解決。
第三代計算機(1965-1970)
第三代計算機以IBM公司研制成功的360系列計算機為標誌。在第二代計算機中,晶體管和其他元件都是手工集成在印刷電路板上,第三代計算機的特征是集成電路。所謂集成電路是將大量的晶體管和電子線路組合在一塊矽片上,故又稱其為芯片。制造芯片的原材料相當便宜,矽是地殼裏含量第二的常見元素,是海灘沙石的主要成分,因此采用矽材料的計算機芯片可以廉價地批量生產。
這個時期的內存儲器用半導體存儲器淘汰了磁芯存儲器,使存儲容量和存取速度有了大幅度的提高;輸入設備出現了鍵盤,使用戶可以直接訪問計算機;輸出設備出現了顯示器,可以向用戶提供立即響應。
為了滿足中小企業與政府機構日益增多的計算機應用,第三代計算機出現了小型計算機。1965年,DEC(Digital Equipment Corporation,數字設備公司)推出了第一臺商業化的以集成電路為主要器件的小型計算機PDP-8。
第四代計算機(1971-至今)
第四代計算機以Intel公司研制的第一代微處理器Intel 4004為標誌,這個時期的計算機最為顯著的特征是使用了大規模集成電路和超大規模集成電路。所謂微處理器是將CPU集成在一塊芯片上,微處理器的發明使計算機在外觀、處理能力、價格以及實用性等方面發生了深刻的變化。
第四代計算機要算微型計算機最為引人註目了,微型計算機的誕生是超大規模集成電路應用的直接結果。微型計算機的“微”主要體現在它的體積小、重量輕、功耗低、價格便宜。1977年蘋果計算機公司成立,先後成功開發了APPLE-I型和APPLE-II型微型計算機。1980年IBM公司與微軟公司合作,為微型計算機IBM PC配置了專門的操作系統。從1981年開始,IBM連續推出IBM PC、PC/XT、PC/AT等機型。時至今日,奔騰系列微處理器應運而生,使得現在的微型計算機體積越來越小、性能越來越強、可靠性越來越高、價格越來越低。
微處理器和微型計算機的出現不僅深刻地影響著計算機技術本身的發展,同時也使計算機技術滲透到了社會生活的各個方面,極大地推動了計算機的普及。盡管微型計算機對人類社會的影響深遠,但是微型計算機並沒有完全取代大型計算機,大型計算機也在發展。利用大規模集成電路制造出的多種邏輯芯片,組裝出大型計算機、巨型計算機,使運算速度更快、存儲容量更大、處理能力更強,這些企業級的計算機一般要放到可控制溫度的機房裏,因此很難被普通公眾看到。
20世紀80年代,多用戶大型機的概念被小型機器連接成的網絡所代替,這些小型機器通過連網共享打印機、軟件和數據等資源。計算機網絡技術使計算機應用從單機走向網絡,並逐漸從獨立網絡走向互聯網絡。
20世界80年代末,出現了新的計算機體系結構——並行體系結構,一種典型的並行結構是所有處理器共享同一個內存。雖然把多個處理器組織在一臺計算機中存在巨大的潛能,但是為這種並行計算機進行程序設計的難度也相當高。
由於計算機仍然在使用電路板,仍然在使用微處理器,仍然沒有突破馮·諾伊曼體系結構,所以我們不能為這一代計算機劃上休止符。但是,生物計算機、量子計算機等新型計算機已經出現,我們拭目以待第五代計算機的到來。
2. 計算機軟件的發展簡史
計算機軟件技術發展很快。50年前,計算機只能被高素質的專家使用,今天,計算機的使用非常普遍,甚至沒有上學的小孩都可以靈活操作;40年前,文件不能方便地在兩臺計算機之間進行交換,甚至在同一臺計算機的兩個不同的應用程序之間進行交換也很困難,今天,網絡在兩個平臺和應用程序之間提供了無損的文件傳輸;30年前,多個應用程序不能方便地共享相同的數據,今天,數據庫技術使得多個用戶、多個應用程序可以互相覆蓋地共享數據。了解計算機軟件的進化過程,對理解計算機軟件在計算機系統中的作用至關重要。
第一代軟件(1946-1953)
第一代軟件是用機器語言編寫的,機器語言是內置在計算機電路中的指令,由0和1組成。例如計算2+6在某種計算機上的機器語言指令如下:
10110000 00000110
00000100 00000010
10100010 01010000
第一條指令表示將“6”送到寄存器AL中,第二條指令表示將“2”與寄存器AL中的內容相加,結果仍在寄存器AL中,第三條指令表示將AL中的內容送到地址為5的單元中。
不同的計算機使用不同的機器語言,程序員必須記住每條及其語言指令的二進制數字組合,因此,只有少數專業人員能夠為計算機編寫程序,這就大大限制了計算機的推廣和使用。用機器語言進行程序設計不僅枯燥費時,而且容易出錯。想一想如何在一頁全是0和1的紙上找一個打錯的字符!
在這個時代的末期出現了匯編語言,它使用助記符(一種輔助記憶方法,采用字母的縮寫來表示指令)表示每條機器語言指令,例如ADD表示加,SUB表示減,MOV表示移動數據。相對於機器語言,用匯編語言編寫程序就容易多了。例如計算2+6的匯編語言指令如下:
MOV AL,6
ADD AL,2
MOV #5,AL
由於程序最終在計算機上執行時采用的都是機器語言,所以需要用一種稱為匯編器的翻譯程序,把用匯編語言編寫的程序翻譯成機器代碼。編寫匯編器的程序員簡化了他人的程序設計,是最初的系統程序員。
第二代軟件(1954-1964)
當硬件變得更強大時,就需要更強大的軟件工具使計算機得到更有效地使用。匯編語言向正確的方向前進了一大步,但是程序員還是必須記住很多匯編指令。第二代軟件開始使用高級程序設計語言(簡稱高級語言,相應地,機器語言和匯編語言稱為低級語言)編寫,高級語言的指令形式類似於自然語言和數學語言(例如計算2+6的高級語言指令就是2+6),不僅容易學習,方便編程,也提高了程序的可讀性。
IBM公司從1954年開始研制高級語言,同年發明了第一個用於科學與工程計算的FORTRAN語言。1958年,麻省理工學院的麥卡錫(John Macarthy)發明了第一個用於人工智能的LISP語言。1959年,賓州大學的霍普(Grace Hopper)發明了第一個用於商業應用程序設計的COBOL語言。1964年達特茅斯學院的凱梅尼(John Kemeny)和卡茨(Thomas Kurtz)發明了BASIC語言。
高級語言的出現產生了在多臺計算機上運行同一個程序的模式,每種高級語言都有配套的翻譯程序(稱為編譯器),編譯器可以把高級語言編寫的語句翻譯成等價的機器指令。系統程序員的角色變得更加明顯,系統程序員編寫諸如編譯器這樣的輔助工具,使用這些工具編寫應用程序的人,稱為應用程序員。隨著包圍硬件的軟件變得越來越復雜,應用程序員離計算機硬件越來越遠了。那些僅僅使用高級語言編程的人不需要懂得機器語言和匯編語言,這就降低了對應用程序員在硬件及機器指令方面的要求。因此,這個時期有更多的計算機應用領域的人員參與程序設計。
由於高級語言程序需要轉換為機器語言程序來執行,因此,高級語言對軟硬件資源的消耗就更多,運行效率也較低。由於匯編語言和機器語言可以利用計算機的所有硬件特性並直接控制硬件,同時,匯編語言和機器語言的運行效率較高,因此,在實時控制、實時檢測等領域的許多應用程序仍然使用匯編語言和機器語言來編寫。
在第一代和第二代軟件時期,計算機軟件實際上就是規模較小的程序,程序的編寫者和使用者往往是同一個(或同一組)人。由於程序規模小,程序編寫起來比較容易,也沒有什麽系統化的方法,對軟件的開發過程更沒有進行任何管理。這種個體化的軟件開發環境使得軟件設計往往只是在人們頭腦中隱含進行的一個模糊過程,除了程序清單之外,沒有其他文檔資料。
第三代軟件(1965-1970)
在這個時期,由於用集成電路取代了晶體管,處理器的運算速度得到了大幅度的提高,處理器在等待運算器準備下一個作業時,無所事事。因此需要編寫一種程序,使所有計算機資源處於計算機的控制中,這種程序就是操作系統。
用作輸入/輸出設備的計算機終端的出現,使用戶能夠直接訪問計算機,而不斷發展的系統軟件則使計算機運轉得更快。但是,從鍵盤和屏幕輸入輸出數據是個很慢的過程,比在內存中執行指令慢得多,這就導致了如何利用機器越來越強大的能力和速度的問題。解決方法就是分時,即許多用戶用各自的終端同時與一臺計算機進行通信。控制這一進程的是分時操作系統,它負責組織和安排各個作業。
1967年,塞繆爾(A.L.Samuel)發明了第一個下棋程序,開始了人工智能的研究。1968年荷蘭計算機科學家狄傑斯特拉(Edsgar W.Dijkstra)發表了論文《GOTO語句的害處》,指出調試和修改程序的困難與程序中包含GOTO語句的數量成正比,從此,各種結構化程序設計理念逐漸確立起來。
20世紀60年代以來,計算機用於管理的數據規模更為龐大,應用越來越廣泛,同時,多種應用、多種語言互相覆蓋地共享數據集合的要求越來越強烈。為解決多用戶、多應用共享數據的需求,使數據為盡可能多的應用程序服務,出現了數據庫技術,以及統一管理數據的軟件系統——數據庫管理系統DBMS。
隨著計算機應用的日益普及,軟件數量急劇膨脹,在計算機軟件的開發和維護過程中出現了一系列嚴重問題,例如:在程序運行時發現的問題必須設法改正;用戶有了新的需求必須相應地修改程序;硬件或操作系統更新時,通常需要修改程序以適應新的環境。上述種種軟件維護工作,以令人吃驚的比例消耗資源,更嚴重的是,許多程序的個體化特性使得他們最終成為不可維護的,“軟件危機”就這樣開始出現了。1968年,北大西洋公約組織的計算機科學家在聯邦德國召開國際會議,討論軟件危機問題,在這次會議上正式提出並使用了“軟件工程”這個名詞。
第四代軟件(1971-1989)
20世紀70年代出現了結構化程序設計技術,Pascal語言和Modula-2語言都是采用結構化程序設計規則制定的,Basic這種為第三代計算機設計的語言也被升級為具有結構化的版本,此外,還出現了靈活且功能強大的C語言。
更好用、更強大的操作系統被開發了出來。為IBM PC開發的PC-DOS和為兼容機開發的MS-DOS都成了微型計算機的標準操作系統,Macintosh機的操作系統引入了鼠標的概念和點擊式的圖形界面,徹底改變了人機交互的方式。
20世紀80年代,隨著微電子和數字化聲像技術的發展,在計算機應用程序中開始使用圖像、聲音等多媒體信息,出現了多媒體計算機。多媒體技術的發展使計算機的應用進入了一個新階段。
這個時期出現了多用途的應用程序,這些應用程序面向沒有任何計算機經驗的用戶。典型的應用程序是電子制表軟件、文字處理軟件和數據庫管理軟件。Lotus1-2-3是第一個商用電子制表軟件,WordPerfect是第一個商用文字處理軟件,dBase III是第一個實用的數據庫管理軟件。
第五代軟件(1990-)
第五代軟件中有三個著名事件:在計算機軟件業具有主導地位的Microsoft公司的崛起、面向對象的程序設計方法的出現以及萬維網(World Wide Web)的普及。
在這個時期,Microsoft公司的Windows操作系統在PC機市場占有顯著優勢,盡管WordPerfect仍在繼續改進,但Microsoft公司的Word成了最常用的文字處理軟件。20世紀90年代中期,Microsoft公司將文字處理軟件Word、電子制表軟件Excel、數據庫管理軟件Access和其他應用程序綁定在一個程序包中,稱為辦公自動化軟件。
面向對象的程序設計方法最早是在20世紀70年代開始使用的,當時主要是用在Smalltalk語言中。20世紀90年代,面向對象的程序設計逐步代替了結構化程序設計,成為目前最流行的程序設計技術。面向對象程序設計尤其適用於規模較大、具有高度交互性、反映現實世界中動態內容的應用程序。Java、C++、C#等都是面向對象程序設計語言。
1990年,英國研究員提姆·柏納李(Tim Berners-Lee)創建了一個全球Internet文檔中心,並創建了一套技術規則和創建格式化文檔的HTML語言,以及能讓用戶訪問全世界站點上信息的瀏覽器,此時的瀏覽器還很不成熟,只能顯示文本。
軟件體系結構從集中式的主機模式轉變為分布式的客戶機/服務器模式(C/S)或瀏覽器/服務器模式(B/S),專家系統和人工智能軟件從實驗室走出來進入了實際應用,完善的系統軟件、豐富的系統開發工具和商品化的應用程序的大量出現,以及通信技術和計算機網絡的飛速發展,使得計算機進入了一個大發展的階段。
在計算機軟件的發展史上,需要註意“計算機用戶”這個概念的變化。起初,計算機用戶和程序員是一體的,程序員編寫程序來解決自己或他人的問題,程序的編寫者和使用者是同一個(或同一組)人;在第一代軟件末期,編寫匯編器等輔助工具的程序員的出現帶來了系統程序員和應用程序員的區分,但是,計算機用戶仍然是程序員;20世紀70年代早期,應用程序員使用復雜的軟件開發工具編寫應用程序,這些應用程序由沒有計算機背景的從業人員使用,計算機用戶不僅是程序員,還包括使用這些應用軟件的非專業人員;隨著微型計算機、計算機遊戲、教育軟件以及各種界面友好的軟件包的出現,許多人成為計算機用戶;萬維網的出現,使網上沖浪成為一種娛樂方式,更多的人成為計算機的用戶。今天,計算機用戶可以是在學習閱讀的學齡前兒童,可以是在下載音樂的青少年,可以是在準備畢業論文的大學生,可以是在制定預算的家庭主婦,可以是在安度晚年的退休人員,……,所有使用計算機的人都是計算機用戶。
3. 計算機的發展趨勢
在短短的60年裏,計算機從像ENIAC這樣笨重、昂貴、容易出錯、僅用於科學計算的機器,發展到今天可信賴的、通用的、遍布現代社會的每一個角落,發明第一臺計算機的人並沒有預測到計算機技術會如此快速地發展。然而,計算機技術在過去60年裏的發展與未來60年的變化相比將會相形見絀,將來我們會覺得今天最好的計算機很原始,就像我們今天看60年前的ENIAC一樣。計算機的產生是人類追求智慧的心血和結晶,計算機的發展也必將隨著人類對智慧的不懈追求而不斷發展。
計算機的發展趨勢可歸結在如下幾個方面:
⑴ 超級計算機。發展高速度、大容量、功能強大的超級計算機,用於處理龐大而復雜的問題,例如航天工程、石油勘探、人類遺傳基因等現代科學技術和國防尖端技術都需要具有最高速度和最大容量的超級計算機。研制超級計算機的技術水平體現了一個國家的綜合國力,因此,超級計算機的研制是各國在高技術領域競爭的熱點。
⑵ 微型計算機。微型化是大規模集成電路出現後發展最迅速的技術之一,計算機的微型化能更好地促進計算機的廣泛應用,因此,發展體積小、功能強、價格低、可靠性高、適用範圍廣的微型計算機是計算機發展的一項重要內容。
⑶ 智能計算機。到目前為止,計算機在處理過程化的計算工作方面已達到相當高的水平,是人力所不能及的,但在智能性工作方面,計算機還遠遠不如人腦。如何讓計算機具有人腦的智能,模擬人的推理、聯想、思維等功能,甚至研制出具有某些情感和智力的計算機,是計算機技術的一個重要的發展方向。
⑷ 普適計算機。20世紀70年代末,詞匯表中出現了個人計算機,人類開始進入“個人計算機時代”。許多研究人員認為,我們已經進入了“後個人計算機時代”,計算機技術將融入到各種工具中並完成其功能。當計算機在人類的日常生活中無處不在時,我們就進入了“普適計算機時代”,普適計算機將提供前所未有的便利和效率。
⑸ 網絡與網格。由於互聯網和萬維網在世界各國已經不同程度地普及和接近成熟,人們關心互聯網和萬維網之後是什麽?是網格。有關專家作了初步論證:互聯網實現了計算機硬件的連通,萬維網實現了網頁的連通,而網格試圖實現互聯網上所有資源(包括計算資源、軟件資源、信息資源、知識資源等)的連通。施樂PARC未來研究機構的負責人保羅·薩福預測了下一代網絡:今天的網絡是工程師做的,2050年的網絡是生長出來的。
⑹ 新型計算機。CPU和大規模集成電路的發展正在接近理論極限,人們正在努力研究超越物理極限的新方法,新型計算機可能會打破計算機現有的體系結構。目前正在研制的新型計算機有:生物計算機——運用生物工程技術,用蛋白分子做芯片;光計算機——用光做為信息載體,通過對光的處理來完成對信息的處理;量子計算機——將計算機科學和物理科學聯系到一起,采用量子特性使用一個兩能級的量子體系來表示一位;等等。
美國《時代》雜誌總結了在過去60年裏人們認識和使用計算機的變化,如表1所示。需要強調的是,一個新的計算機時代的開始並不意味著舊的計算機時代的終結。現在,我們生活在一個研究型計算機、個人計算機和網絡計算機時代,並即將進入一個計算機無處不在的普適計算機時代。
技術很難預測,技術帶給社會的影響更難預測,誰能在20世紀40年代預測計算機技術會給我們現在的生活帶來如此深遠的影響。預測未來10~20年的計算機技術發展情況最好的辦法就是觀察目前實驗室裏的研究成果,雖然我們無法知道實驗室裏的哪些研究成果最終可以獲得成功,也無法知道預測未來的結果是否正確,但是有一點是確定的,那就是創造未來完全靠我們自己。
計算工具的發展簡史