計(jì)算機(jī)
歷史
本來,計(jì)算機(jī)的英文原詞“computer”是指從事數(shù)據(jù)計(jì)算的人。而他們往往都需要借助某些機(jī)械計(jì)算設(shè)備或模擬計(jì)算機(jī)。
這些早期計(jì)算設(shè)備的祖先包括有算盤,以及可以追溯到公元前87年的被古希臘人用于計(jì)算行星移動(dòng)的安提基特拉機(jī)械。隨著中世紀(jì)末期歐洲數(shù)學(xué)與工程學(xué)的再次繁榮,1623年德國(guó)博學(xué)家 Wilhelm Schickard(德語(yǔ):Wilhelm Schickard)率先研制出了歐洲第一部計(jì)算設(shè)備,這是一個(gè)能進(jìn)行六位以內(nèi)數(shù)加減法,并能通過鈴聲輸出答案的“計(jì)算鐘”。使用轉(zhuǎn)動(dòng)齒輪來進(jìn)行操作。
1642年法國(guó)數(shù)學(xué)家布萊士·帕斯卡在英國(guó)數(shù)學(xué)家William Oughtred所制作的“計(jì)算尺”的基礎(chǔ)上,將其加以改進(jìn),使能進(jìn)行八位計(jì)算。還賣出了許多制品,成為當(dāng)時(shí)一種時(shí)髦的商品。
1801年,法國(guó)人約瑟夫·瑪麗·雅卡爾對(duì)織布機(jī)的設(shè)計(jì)進(jìn)行改進(jìn),使用一系列打孔的紙卡片來作為編織復(fù)雜圖案的程序。盡管這種被稱作“雅卡爾織布機(jī)”的機(jī)器并不被認(rèn)為是一部真正的計(jì)算機(jī),但是其可編程化性質(zhì)使之被視為現(xiàn)代計(jì)算機(jī)發(fā)展過程中重要的一步。
查爾斯·巴貝奇于1820年構(gòu)想和設(shè)計(jì)了第一部完全可程序化計(jì)算機(jī)。但由于技術(shù)條件、經(jīng)費(fèi)限制,以及無法忍耐對(duì)設(shè)計(jì)不停的修補(bǔ),這部計(jì)算機(jī)在他有生之年始終未能問世。約到19世紀(jì)晚期,許多后來被證明對(duì)計(jì)算機(jī)科學(xué)有著重大意義的技術(shù)相繼出現(xiàn),包括打孔卡片以及真空管。德裔美籍統(tǒng)計(jì)學(xué)家赫爾曼·何樂禮設(shè)計(jì)了一部制表用的機(jī)器,其中便應(yīng)用打孔卡片來進(jìn)行大規(guī)模自動(dòng)數(shù)據(jù)處理。
在20世紀(jì)前半葉,為了迎合科學(xué)計(jì)算的需要,許多專門用途的、復(fù)雜度不斷增長(zhǎng)的模擬計(jì)算機(jī)被研制出來。這些計(jì)算機(jī)都是用它們所針對(duì)的特定問題的機(jī)械或電子模型作為計(jì)算基礎(chǔ)。1930-1940年代,計(jì)算機(jī)的性能逐漸強(qiáng)大并且通用性得到提升,現(xiàn)代計(jì)算機(jī)的關(guān)鍵特色被不斷地加入進(jìn)來。
1937年,年僅21歲的麻省理工學(xué)院研究生克勞德·香農(nóng)發(fā)表了他的偉大論文《對(duì)繼電器和開關(guān)電路中的符號(hào)分析》,文中首次提及數(shù)字電子技術(shù)的應(yīng)用。他向人們展示了如何使用開關(guān)來實(shí)現(xiàn)邏輯和數(shù)算。此后,他通過研究萬尼瓦爾·布什的微分模擬器進(jìn)一步鞏固了他的想法。這是一個(gè)標(biāo)志著二進(jìn)制電子電路設(shè)計(jì)和邏輯門應(yīng)用開始的重要時(shí)刻,而這些關(guān)鍵思想誕生的先驅(qū),應(yīng)當(dāng)包括:阿爾蒙·斯特羅格,他為一個(gè)含有邏輯門電路的設(shè)備申請(qǐng)了專利;尼古拉·特斯拉,他早在1898年就曾申請(qǐng)含有邏輯門的電路設(shè)備;李·德富雷斯特,于1907年他用真空管代替了繼電器。
HP Jornada 690打開了手機(jī)和計(jì)算機(jī)結(jié)合的早期概念,成為智能手機(jī)早期概念范型。
沿著這樣一條上下求索的漫漫長(zhǎng)途去定義所謂的“第一部電子計(jì)算機(jī)”可謂相當(dāng)困難。1941年5月12日,德國(guó)工程師康拉德·楚澤完成了他的圖靈完全機(jī)電一體計(jì)算機(jī)“Z3”,這是第一部具有自動(dòng)二進(jìn)制數(shù)學(xué)計(jì)算特色以及可行的程序化功能的計(jì)算機(jī),但還不是“電子”計(jì)算機(jī)。此外,其他值得注意的成就主要有:
1941年夏天誕生的阿塔納索夫-貝瑞計(jì)算機(jī)是世界上第一部電子計(jì)算機(jī),它使用了真空管計(jì)算器,二進(jìn)制數(shù)值,可復(fù)用內(nèi)存;在英國(guó)于1943年被展示的神秘的巨像計(jì)算機(jī)(Colossus computer),盡管程序化能力極為有限,但是它使人們確信使用真空管既值得信賴,又能實(shí)現(xiàn)電氣化的再編程;哈佛大學(xué)的馬克一號(hào);以及基于二進(jìn)制的ENIAC,全名為電子數(shù)值積分計(jì)算器,這是第一部通用意圖的計(jì)算機(jī),但由于其結(jié)構(gòu)設(shè)計(jì)不夠彈性化,導(dǎo)致對(duì)它的每一次再編程都要重新連接電子線路。
1940年代的第二次世界大戰(zhàn)中,為訓(xùn)練轟炸機(jī)飛行員,美國(guó)海軍曾向麻省理工學(xué)院探詢,是否能夠開發(fā)出一款可以控制飛行模擬器的計(jì)算機(jī)。軍方當(dāng)初的設(shè)想只是希望經(jīng)由該計(jì)算機(jī)將飛行員模擬操作產(chǎn)生的數(shù)據(jù)即時(shí)反映到儀表盤上。和以前的訓(xùn)練系統(tǒng)林克訓(xùn)練機(jī)不同,軍方計(jì)劃系統(tǒng)能盡可能真實(shí)地根據(jù)空氣動(dòng)力學(xué)模型進(jìn)行模擬,以使其能適用于各種不同類型的飛機(jī)。于是麻省理工創(chuàng)造了旋風(fēng)工程,其制造出了世界上第一臺(tái)能夠即時(shí)處理數(shù)據(jù)的旋風(fēng)計(jì)算機(jī),并發(fā)明了磁芯存儲(chǔ)設(shè)備。這為個(gè)人計(jì)算機(jī)的發(fā)展做出了歷史性的貢獻(xiàn)。
開發(fā)埃尼阿克的小組針對(duì)其缺陷又進(jìn)一步改善了設(shè)計(jì),并最終呈現(xiàn)出今天我們所熟知的馮·諾伊曼結(jié)構(gòu)(程序存儲(chǔ)體系結(jié)構(gòu))。這個(gè)體系是當(dāng)今所有計(jì)算機(jī)的基礎(chǔ)。20世紀(jì)40年代中晚期,大批基于此一體系的計(jì)算機(jī)開始研制,其中以英國(guó)最早。盡管第一部研制完成并投入運(yùn)轉(zhuǎn)的是小規(guī)模實(shí)驗(yàn)機(jī)(Small-Scale Experimental Machine,SSEM),但真正被開發(fā)出來的實(shí)用機(jī)很可能是延遲存儲(chǔ)電子自動(dòng)計(jì)算器(EDSAC)。
在整個(gè)1950年代,真空管計(jì)算機(jī)居于統(tǒng)治地位。1958年9月12日在后來英特爾的創(chuàng)始人羅伯特·諾伊斯的領(lǐng)導(dǎo)下,發(fā)明了集成電路。不久又推出了微處理器。1959年到1964年間設(shè)計(jì)的計(jì)算機(jī)一般稱為第二代計(jì)算機(jī)。
到了1960年代,晶體管計(jì)算機(jī)將其取而代之。晶體管體積更小,速度更快,價(jià)格更加低廉,性能更加可靠,這使得它們可以商品化生產(chǎn)。1964年到1972年的計(jì)算機(jī)一般被稱為第三代計(jì)算機(jī)。大量使用積體電路,典型的機(jī)型是IBM360系列。
到了1970年代,積體電路技術(shù)的引入大大地降低了計(jì)算機(jī)生產(chǎn)成本,計(jì)算機(jī)也從此開始走向千家萬戶。1972年以后的計(jì)算機(jī)習(xí)慣上被稱為第四代計(jì)算機(jī)?;诖笠?guī)模積體電路,及后來的超大規(guī)模積體電路。1972年4月1日,INTEL推出8008微處理器。1976年,史蒂夫·喬布斯和斯蒂夫·沃茲尼亞克創(chuàng)辦蘋果計(jì)算機(jī)公司。并推出其Apple I計(jì)算機(jī)。1977年5月Apple II型計(jì)算機(jī)發(fā)布。1979年6月1日INTEL,發(fā)布了8位的8088微處理器。
1982年,微計(jì)算機(jī)開始普及,大量進(jìn)入學(xué)校和家庭。1982年1月Commodore 64計(jì)算機(jī)發(fā)布,價(jià)格595美元。
1982年2月Intel 80286發(fā)布。時(shí)鐘頻率提高到20MHz,并增加了保護(hù)模式,可訪問640KB存儲(chǔ)器。支持1MB以上的虛擬內(nèi)存。每秒運(yùn)行270萬條指令,集成了134000個(gè)晶體管。
1990年11月,微軟發(fā)布第一代MPC(Multimedia PC,多媒體個(gè)人計(jì)算機(jī)標(biāo)準(zhǔn)):處理器至少為80286/12 MHz(后來增加到80386SX/16 MHz),有光盤驅(qū)動(dòng)器,傳輸率不少于150KB/sec。
1994年10月10日Intel發(fā)布75MHzPentium處理器。1995年11月1日,Pentium Pro發(fā)布。主頻可達(dá)200MHz,每秒鐘完成4.4億條指令,集成了550萬個(gè)晶體管。1997年1月8日Intel發(fā)布Pentium MMX,對(duì)游戲和多媒體功能進(jìn)行了增強(qiáng)。
此后計(jì)算機(jī)的變化日新月異,1965年發(fā)表的摩爾定律不斷被應(yīng)證,預(yù)測(cè)在未來10—15年仍依然適用。
原理
個(gè)人計(jì)算機(jī)的主要結(jié)構(gòu): 1.屏幕 2.主板 3.中央處理器(微處理器) 4.存儲(chǔ)器 5.適配器(如聲卡、網(wǎng)卡) 6.電源供應(yīng)器 7.軟驅(qū)/光盤驅(qū)動(dòng)器 8.硬盤 9.鍵盤 10.鼠標(biāo)
盡管計(jì)算機(jī)技術(shù)自20世紀(jì)40年代第一部電子通用計(jì)算機(jī)誕生以來以來有了令人目眩的飛速發(fā)展,但是今天計(jì)算機(jī)仍然基本上采用的是存儲(chǔ)程序結(jié)構(gòu),即馮·諾伊曼結(jié)構(gòu)。這個(gè)結(jié)構(gòu)實(shí)現(xiàn)了實(shí)用化的通用計(jì)算機(jī)。
存儲(chǔ)程序結(jié)構(gòu)將一部計(jì)算機(jī)描述成四個(gè)主要部分:算術(shù)邏輯單元、控制電路、存儲(chǔ)器及輸入輸出設(shè)備。這些部件通過一組一組的排線連接(特別地,當(dāng)一組線被用于多種不同意圖的數(shù)據(jù)傳輸時(shí)又被稱為總線),并且由一個(gè)時(shí)鐘來驅(qū)動(dòng)(當(dāng)然某些其他事件也可能驅(qū)動(dòng)控制電路)。
概念上講,一部計(jì)算機(jī)的存儲(chǔ)器可以被視為一組“細(xì)胞”單元。每一個(gè)“細(xì)胞”都有一個(gè)編號(hào),稱為地址;又都可以存儲(chǔ)一個(gè)較小的定長(zhǎng)信息。這個(gè)信息既可以是指令(告訴計(jì)算機(jī)去做什么),也可以是數(shù)據(jù)(指令的處理對(duì)象)。原則上,每一個(gè)“細(xì)胞”都是可以存儲(chǔ)二者之任一的。
算術(shù)邏輯單元(ALU)可以被稱作計(jì)算機(jī)的大腦。它可以做兩類運(yùn)算:第一類是算術(shù)運(yùn)算,比如對(duì)兩個(gè)數(shù)字進(jìn)行加減法。算術(shù)運(yùn)算部件的功能在ALU中是十分有限的,事實(shí)上,一些ALU根本不支持電路級(jí)的乘法和除法運(yùn)算(由是用戶只能通過編程進(jìn)行乘除法運(yùn)算)。第二類是比較運(yùn)算,即給定兩個(gè)數(shù),ALU對(duì)其進(jìn)行比較以確定哪個(gè)更大一些。
輸入輸出系統(tǒng)是計(jì)算機(jī)從外部世界接收信息和向外部世界反饋運(yùn)算結(jié)果的手段。對(duì)于一部標(biāo)準(zhǔn)的個(gè)人電腦,輸入設(shè)備主要有鍵盤和鼠標(biāo),輸出設(shè)備則是顯示器、打印機(jī)以及其他許多后文將要討論的可連接到計(jì)算機(jī)上的I/O設(shè)備。
控制系統(tǒng)將以上計(jì)算機(jī)各部分聯(lián)系起來。它的功能是從存儲(chǔ)器和輸入輸出設(shè)備中讀取指令和數(shù)據(jù),對(duì)指令進(jìn)行解碼,并向ALU交付匹配指令要求的正確輸入,告知ALU對(duì)這些數(shù)據(jù)做哪些運(yùn)算并將結(jié)果數(shù)據(jù)返回到何處??刂葡到y(tǒng)中一個(gè)重要組件就是一個(gè)用來保持跟蹤當(dāng)前指令所在地址的計(jì)數(shù)器。通常這個(gè)計(jì)數(shù)器隨著指令的執(zhí)行而累加,但有時(shí)如果指令指示進(jìn)行跳轉(zhuǎn)則不依此規(guī)則。
20世紀(jì)80年代以來ALU和控制單元(二者合稱中央處理器)逐漸被集成到一塊集成電路上,稱作微處理器。這類計(jì)算機(jī)的工作模式十分直觀:在一個(gè)時(shí)鐘周期內(nèi),計(jì)算機(jī)先從存儲(chǔ)器中獲取指令和數(shù)據(jù),然后執(zhí)行指令,存儲(chǔ)數(shù)據(jù),再獲取下一條指令。這個(gè)過程被反復(fù)執(zhí)行,直至得到一個(gè)終止指令。
由控制器解釋,運(yùn)算器執(zhí)行的指令集是一個(gè)精心定義的數(shù)目十分有限的簡(jiǎn)單指令集合。一般可以分為四類:1)、數(shù)據(jù)移動(dòng)(如:將一個(gè)數(shù)值從存儲(chǔ)單元A拷貝到存儲(chǔ)單元B)2)、數(shù)邏運(yùn)算(如:計(jì)算存儲(chǔ)單元A與存儲(chǔ)單元B之和,結(jié)果返回存儲(chǔ)單元C)3)、條件驗(yàn)證(如:如果存儲(chǔ)單元A內(nèi)數(shù)值為100,則下一條指令地址為存儲(chǔ)單元F)4)、指令序列改易(如:下一條指令地址為存儲(chǔ)單元F)
指令如同數(shù)據(jù)一樣在計(jì)算機(jī)內(nèi)部是以二進(jìn)制來表示的。比如說,10110000就是一條Intelx86系列微處理器的拷貝指令代碼。某一個(gè)計(jì)算機(jī)所支持的指令集就是該計(jì)算機(jī)的機(jī)器語(yǔ)言。因此,使用流行的機(jī)器語(yǔ)言將會(huì)使既成軟件在一部新計(jì)算機(jī)上運(yùn)行得更加容易。所以對(duì)于那些機(jī)型商業(yè)化軟件開發(fā)的人來說,它們通常只會(huì)關(guān)注一種或幾種不同的機(jī)器語(yǔ)言。
更加強(qiáng)大的小型計(jì)算機(jī),大型計(jì)算機(jī)和服務(wù)器可能會(huì)與上述計(jì)算機(jī)有所不同。它們通常將任務(wù)分擔(dān)給不同的CPU來執(zhí)行。今天,微處理器和多核個(gè)人電腦也在朝這個(gè)方向發(fā)展。
超級(jí)計(jì)算機(jī)通常有著與基本的存儲(chǔ)程序計(jì)算機(jī)顯著區(qū)別的體系結(jié)構(gòu)。它們通常有著數(shù)以千計(jì)的CPU,不過這些設(shè)計(jì)似乎只對(duì)特定任務(wù)有用。在各種計(jì)算機(jī)中,還有一些微控制器采用令程序和數(shù)據(jù)分離的哈佛架構(gòu)(Harvard architecture)。
計(jì)算機(jī)的數(shù)字電路實(shí)現(xiàn)
集成電路是現(xiàn)今電子計(jì)算機(jī)基礎(chǔ)
以上所說的這些概念性設(shè)計(jì)的物理實(shí)現(xiàn)是多種多樣的。如同我們前述所及,一部存儲(chǔ)過程式計(jì)算機(jī)既可以是巴比奇的機(jī)械式的,也可以是基于數(shù)字電子的。但是,數(shù)字電路可以通過諸如繼電器之類的電子控制開關(guān)來實(shí)現(xiàn)使用2進(jìn)制數(shù)的算術(shù)和邏輯運(yùn)算。香農(nóng)的論文正是向我們展示了如何排列繼電器來組成能夠?qū)崿F(xiàn)簡(jiǎn)單布爾運(yùn)算的邏輯門。其他一些學(xué)者很快指出使用真空管可以代替繼電器電路。真空管最初被用作無線電電路中的放大器,之后便開始被越來越多地用作數(shù)字電子電路中的快速開關(guān)。當(dāng)電子管的一個(gè)針腳被通電后,電流就可以在另外兩端間自由通過。
通過邏輯門的排列組合我們可以設(shè)計(jì)完成很多復(fù)雜的任務(wù)。舉例而言,加法器就是其中之一。該器件在電子領(lǐng)域?qū)崿F(xiàn)了兩個(gè)數(shù)相加并將結(jié)果保存下來—在計(jì)算機(jī)科學(xué)中這樣一個(gè)通過一組運(yùn)算來實(shí)現(xiàn)某個(gè)特定意圖的方法被稱做一個(gè)算法。最終,人們通過數(shù)量可觀的邏輯門電路組裝成功了完整的ALU和控制器。說它數(shù)量可觀,只需看一下CSIRAC這部可能是最小的實(shí)用化電子管計(jì)算機(jī)。該機(jī)含有2000個(gè)電子管,其中還有不少是雙用器件,也即是說總計(jì)合有2000到4000個(gè)邏輯器件。
真空管對(duì)于制造規(guī)模龐大的門電路明顯力不從心。昂貴,不穩(wěn)(尤其是數(shù)量多時(shí)),臃腫,能耗高,并且速度也不夠快—盡管遠(yuǎn)超機(jī)械開關(guān)電路。這一切導(dǎo)致20世紀(jì)60年代它們被晶體管替換。后者體積更小,易于操作,可靠性高,更省能耗,同時(shí)成本也更低。
20世紀(jì)60年代后,晶體管開始逐漸為將大量晶體管、其他各種電器組件和連接導(dǎo)線安置在一片硅板上的集成電路所替換。70年代,ALU和控制器作為組成CPU的兩大部分,開始被集成到一塊芯片上,并稱為“微處理器”。沿著集成電路的發(fā)展史,可以看到一片芯片上所集成器件的數(shù)量有了飛速增長(zhǎng)。第一塊集成電路只不過包含幾十個(gè)部件,而到了2015年,一塊Intel Core i7處理器上的晶體管數(shù)目高達(dá)十九億之巨。
無論是電子管,晶體管還是集成電路,它們都可以通過使用一種觸發(fā)器設(shè)計(jì)機(jī)制來用作存儲(chǔ)程序體系結(jié)構(gòu)中的“存儲(chǔ)”部件。而事實(shí)上觸發(fā)器的確被用作小規(guī)模的超高速存儲(chǔ)。但是,幾乎沒有任何計(jì)算機(jī)設(shè)計(jì)使用觸發(fā)器來進(jìn)行大規(guī)模數(shù)據(jù)存儲(chǔ)。最早的計(jì)算機(jī)是使用Williams電子管向一個(gè)電視屏或若干條水銀延遲線(聲波通過這種線時(shí)的走行速度極為緩慢足夠被認(rèn)為是“存儲(chǔ)”在了上面)發(fā)射電子束然后再來讀取的方式來存儲(chǔ)數(shù)據(jù)的。當(dāng)然,這些盡管有效卻不怎么優(yōu)雅的方法最終還是被磁性存儲(chǔ)取而代之。比如說磁芯存儲(chǔ)器,代表信息的電流可在其中的鐵質(zhì)材料內(nèi)制造恒久的弱磁場(chǎng),當(dāng)這個(gè)磁場(chǎng)再被讀出時(shí)就實(shí)現(xiàn)了數(shù)據(jù)恢復(fù)。動(dòng)態(tài)隨機(jī)存儲(chǔ)器亦被發(fā)明出來。它是一個(gè)包含大量電容的集成電路,而這些電容器件正是負(fù)責(zé)存儲(chǔ)數(shù)據(jù)電荷—電荷的強(qiáng)度則被定義為數(shù)據(jù)的值。
輸入輸出設(shè)備
6支接腳的小型PS/2輸入接口
Canon S520打印機(jī)
輸入輸出設(shè)備(I/O)是對(duì)將外部世界信息發(fā)送給計(jì)算機(jī)的設(shè)備和將處理結(jié)果返回給外部世界的設(shè)備的總稱。這些返回結(jié)果可能是作為用戶能夠視覺上體驗(yàn)的,或是作為該計(jì)算機(jī)所控制的其他設(shè)備的輸入:對(duì)于一部機(jī)器人,控制計(jì)算機(jī)的輸出基本上就是這部機(jī)器人本身,如做出各種行為。
第一代計(jì)算機(jī)的輸入輸出設(shè)備種類非常有限。通常的輸入用設(shè)備是打孔卡片的讀卡機(jī),用來將指令和數(shù)據(jù)導(dǎo)入內(nèi)存;而用于存儲(chǔ)結(jié)果的輸出設(shè)備則一般是磁帶。隨著科技的進(jìn)步,輸入輸出設(shè)備的豐富性得到提高。以個(gè)人計(jì)算機(jī)為例:鍵盤和鼠標(biāo)是用戶向計(jì)算機(jī)直接輸入信息的主要工具,而顯示器、打印機(jī)、擴(kuò)音器、耳機(jī)則返回處理結(jié)果。此外還有許多輸入設(shè)備可以接受其他不同種類的信息,如數(shù)碼相機(jī)可以輸入圖像。在輸入輸出設(shè)備中,有兩類很值得注意:第一類是二級(jí)存儲(chǔ)設(shè)備,如硬盤,光盤或其他速度緩慢但擁有很高容量的設(shè)備。第二個(gè)是計(jì)算機(jī)網(wǎng)絡(luò)訪問設(shè)備,通過他們而實(shí)現(xiàn)的計(jì)算機(jī)間直接數(shù)據(jù)傳送極大地提升了計(jì)算機(jī)的價(jià)值。今天,國(guó)際互聯(lián)網(wǎng)成就了數(shù)以千萬計(jì)的計(jì)算機(jī)彼此間傳送各種類型的數(shù)據(jù)。
程序
簡(jiǎn)單說,計(jì)算機(jī)程序就是計(jì)算機(jī)執(zhí)行指令的一個(gè)序列。它既可以只是幾條執(zhí)行某個(gè)簡(jiǎn)單任務(wù)的指令,也可能是可能要操作巨大數(shù)據(jù)量的復(fù)雜指令隊(duì)列。許多計(jì)算機(jī)程序包含有百萬計(jì)的指令,而其中很多指令可能被反復(fù)執(zhí)行。在2005年,一部典型的個(gè)人計(jì)算機(jī)可以每秒執(zhí)行大約30億條指令。計(jì)算機(jī)通常并不會(huì)執(zhí)行一些很復(fù)雜的指令來獲得額外的機(jī)能,更多地它們是在按照程序員的排列來運(yùn)行那些較簡(jiǎn)單但為數(shù)眾多的短指令。
一般情況下,程序員們是不會(huì)直接用機(jī)器語(yǔ)言來為計(jì)算機(jī)寫入指令的。那么做的結(jié)果只能是費(fèi)時(shí)費(fèi)力、效率低下而且漏洞百出。所以,程序員一般通過“高級(jí)”一些的語(yǔ)言來寫程序,然后再由某些特別的計(jì)算機(jī)程序,如解釋器或編譯器將之翻譯成機(jī)器語(yǔ)言。一些編程語(yǔ)言看起來很接近機(jī)器語(yǔ)言,如匯編程序,被認(rèn)為是低級(jí)語(yǔ)言。而另一些語(yǔ)言,如即如抽象原則的Prolog,則完全無視計(jì)算機(jī)實(shí)際運(yùn)行的操作細(xì)節(jié),可謂是高級(jí)語(yǔ)言。對(duì)于一項(xiàng)特定任務(wù),應(yīng)該根據(jù)其事務(wù)特點(diǎn),程序員技能,可用工具和客戶需求來選擇相應(yīng)的語(yǔ)言,其中又以客戶需求最為重要。
計(jì)算機(jī)軟件是與計(jì)算機(jī)程序并不相等的另一個(gè)詞匯。計(jì)算機(jī)軟件一個(gè)較為包容性較強(qiáng)的技術(shù)術(shù)語(yǔ),它包含了用于完成任務(wù)的各種程序以及所有相關(guān)材料。舉例說,一個(gè)視頻游戲不但只包含程序本身,也包括圖片、聲音以及其他創(chuàng)造虛擬游戲環(huán)境的數(shù)據(jù)內(nèi)容。在零售市場(chǎng),在一部計(jì)算機(jī)上的某個(gè)應(yīng)用程序只是一個(gè)面向大量用戶的軟件的一個(gè)副本。這里老生常談的例子當(dāng)然還是微軟的office軟件組,它包括一系列互相關(guān)聯(lián)的、面向一般辦公需求的程序。
利用那些極其簡(jiǎn)單的機(jī)器語(yǔ)言指令來實(shí)現(xiàn)無數(shù)功能強(qiáng)大的應(yīng)用軟件意味著其編程規(guī)模注定不小。Windows XP這個(gè)操作系統(tǒng)程序包含的C++高級(jí)語(yǔ)言源代碼達(dá)到了4000萬行。當(dāng)然這還不是最大的。如此龐大的軟件規(guī)模也顯示了管理在開發(fā)過程中的重要性。實(shí)際編程時(shí),程序會(huì)被細(xì)分到每一個(gè)程序員都可以在一個(gè)可接受的時(shí)長(zhǎng)內(nèi)完成的規(guī)模。
即便如此,軟件開發(fā)的過程仍然進(jìn)程緩慢,不可預(yù)見且遺漏多多。應(yīng)運(yùn)而生的軟件工程學(xué)就重點(diǎn)面向如何加快作業(yè)進(jìn)度和提高效率與質(zhì)量。
函數(shù)庫(kù)與操作系統(tǒng)
在計(jì)算機(jī)誕生后不久,人們發(fā)現(xiàn)某些特定作業(yè)在許多不同的程序中都要被實(shí)施,比如說計(jì)算某些標(biāo)準(zhǔn)數(shù)學(xué)函數(shù)。出于效率考量,這些程序的標(biāo)準(zhǔn)版本就被收集到一個(gè)“庫(kù)”中以供各程序調(diào)用。許多任務(wù)經(jīng)常要去額外處理種類繁多的輸入輸出接口,這時(shí),用于連接的庫(kù)就能派上用場(chǎng)。
20世紀(jì)60年代,隨著計(jì)算機(jī)工業(yè)化普及,計(jì)算機(jī)越來越多地被用作一個(gè)組織內(nèi)不同作業(yè)的處理。很快,能夠自動(dòng)安排作業(yè)時(shí)續(xù)和執(zhí)行的特殊軟件出現(xiàn)了。這些既控制硬件又負(fù)責(zé)作業(yè)時(shí)序安排的軟件被稱為“操作系統(tǒng)”。一個(gè)早期操作系統(tǒng)的例子是IBM的OS/360。
在不斷地完善中,操作系統(tǒng)又引入了時(shí)間共享機(jī)制——并發(fā)。這使得多個(gè)不同用戶可以“同時(shí)”地使用機(jī)器執(zhí)行他們自己的程序,看起來就像是每個(gè)人都有一部自己的計(jì)算機(jī)。為此,操作系統(tǒng)需要向每個(gè)用戶提供一部“虛擬機(jī)”來分離各個(gè)不同的程序。由于需要操作系統(tǒng)控制的設(shè)備也在不斷增加,其中之一便是硬盤。因之,操作系統(tǒng)又引入了文件管理和目錄管理(文件夾),大大簡(jiǎn)化了這類永久儲(chǔ)存性設(shè)備的應(yīng)用。此外,操作系統(tǒng)也負(fù)責(zé)安全控制,確保用戶只能訪問那些已獲得允許的文件。
當(dāng)然,到目前為止操作系統(tǒng)發(fā)展歷程中最后一個(gè)重要步驟就是為程序提供標(biāo)準(zhǔn)圖形用戶界面。盡管沒有什么技術(shù)原因表明操作系統(tǒng)必須得提供這些界面,但操作系統(tǒng)供應(yīng)商們總是希望并鼓勵(lì)那些運(yùn)行在其系統(tǒng)上的軟件能夠在外觀和行為特征上與操作系統(tǒng)保持一致或相似。
除了以上這些核心功能,操作系統(tǒng)還封裝了一系列其他常用工具。其中一些雖然對(duì)計(jì)算機(jī)管理并無重大意義,但是于用戶而言很是有用。比如,蘋果公司的Mac OS X就包含視頻剪輯應(yīng)用程序。
一些用于更小規(guī)模的計(jì)算機(jī)的操作系統(tǒng)可能沒用如此眾多的功能。早期的微型計(jì)算機(jī)由于記憶體和處理能力有限而不會(huì)提供額外功能,而嵌入式計(jì)算機(jī)則使用特定化了的操作系統(tǒng)或者干脆沒有,它們往往通過應(yīng)用程序直接代理操作系統(tǒng)的某些功能。
應(yīng)用
IBMz9 銀行用金融服務(wù)器,現(xiàn)代金融業(yè)早已大量依賴計(jì)算機(jī)和網(wǎng)絡(luò)來運(yùn)作
美國(guó)戰(zhàn)術(shù)數(shù)字信息鏈路TADIL終端機(jī)
起初,體積龐大而價(jià)格昂貴的數(shù)字計(jì)算機(jī)主要是用做執(zhí)行科學(xué)計(jì)算,特別是軍用課題。如ENIAC最早就是被用作火炮彈計(jì)算和設(shè)計(jì)氫彈時(shí)計(jì)算斷面中子密度的(如今許多超級(jí)計(jì)算機(jī)仍然在模擬核試驗(yàn)方面發(fā)揮著巨大作用)。澳大利亞設(shè)計(jì)的首部存儲(chǔ)程序計(jì)算機(jī)CSIR Mk I型負(fù)責(zé)對(duì)水電工程中的集水地帶的降雨情形進(jìn)行評(píng)估。還有一些被用于解密,比如英國(guó)的“巨像”可編程計(jì)算機(jī)。除去這些早年的科學(xué)或軍工應(yīng)用,計(jì)算機(jī)在其他領(lǐng)域的推廣亦十分迅速。
從一開始,存儲(chǔ)程序計(jì)算機(jī)就與商業(yè)問題的解決息息相關(guān)。早在IBM的第一部商用計(jì)算機(jī)誕生之前,英國(guó)J.Lyons等就設(shè)計(jì)制造了LEO以進(jìn)行資產(chǎn)管理或迎合其他商業(yè)用途。由于持續(xù)的體積與成本控制,計(jì)算機(jī)開始向更小型的組織內(nèi)普及。加之20世紀(jì)70年代微處理器的發(fā)明,廉價(jià)計(jì)算機(jī)成為了現(xiàn)實(shí)。80年代,個(gè)人計(jì)算機(jī)全面流行,電子文檔寫作與印刷,計(jì)算預(yù)算和其他重復(fù)性的報(bào)表作業(yè)越來越多地開始依賴計(jì)算機(jī)。
隨著計(jì)算機(jī)便宜起來,創(chuàng)作性的藝術(shù)工作也開始使用它們。人們利用合成器,計(jì)算機(jī)圖形和動(dòng)畫來創(chuàng)作和修改聲音,圖像,視頻。視頻游戲的產(chǎn)業(yè)化也說明了計(jì)算機(jī)在娛樂方面也開創(chuàng)了新的歷史。
計(jì)算機(jī)小型化以來,機(jī)械設(shè)備的控制也開始仰仗計(jì)算機(jī)的支持。其實(shí),正是當(dāng)年為了建造足夠小的嵌入式計(jì)算機(jī)來控制阿波羅1號(hào)才刺激了集成電路技術(shù)的躍進(jìn)。今天想要找一部不被計(jì)算機(jī)控制的有源機(jī)械設(shè)備要比找一部哪怕是部分計(jì)算機(jī)控制的設(shè)備要難得多??赡茏钪挠?jì)算機(jī)控制設(shè)備要非機(jī)器人莫屬,這些機(jī)器有著或多或少人類的外表和并具備人類行為的某一子集。在批量生產(chǎn)中,工業(yè)機(jī)器人已是尋常之物。不過,完全的擬人機(jī)器人還只是停留在科幻小說或?qū)嶒?yàn)室之中。
機(jī)器人技術(shù)實(shí)質(zhì)上是人工智能領(lǐng)域中的物理表達(dá)環(huán)節(jié)。所謂人工智能是一個(gè)定義模糊的概念但是可以肯定的是這門學(xué)科試圖令計(jì)算機(jī)擁有目前它們還沒有但作為人類卻固有的能力。數(shù)年以來,不斷有許多新方法被開發(fā)出來以允許計(jì)算機(jī)做那些之前被認(rèn)為只有人才能做的事情。比如讀書、下棋。然而,到目前為止,在研制具有人類的一般“整體性”智能的計(jì)算機(jī)方面,進(jìn)展仍十分緩慢。
網(wǎng)絡(luò)、國(guó)際互聯(lián)網(wǎng)
20世紀(jì)50年代以來計(jì)算機(jī)開始用作協(xié)調(diào)來自不同地方之信息的工具,美國(guó)軍方的賢者系統(tǒng)(SAGE)就是這方面第一個(gè)大規(guī)模系統(tǒng)。之后“軍刀”等一系列特殊用途的商業(yè)系統(tǒng)也不斷涌現(xiàn)出來。
70年代后,美國(guó)各大院校的計(jì)算機(jī)工程師開始使用電信技術(shù)把他們的計(jì)算機(jī)連接起來。由于這方面的工作得到了ARPA的贊助,其計(jì)算機(jī)網(wǎng)絡(luò)也就被稱為ARPANET。此后,用于ARPA網(wǎng)的技術(shù)快速擴(kuò)散和進(jìn)化,這個(gè)網(wǎng)絡(luò)也沖破大學(xué)和軍隊(duì)的范圍最終形成了今天的國(guó)際互聯(lián)網(wǎng)。網(wǎng)絡(luò)的出現(xiàn)導(dǎo)致了對(duì)計(jì)算機(jī)屬性和邊界的再定義。太陽(yáng)微系統(tǒng)公司的John Gage和Bill Joy就指出:“網(wǎng)絡(luò)即是計(jì)算機(jī)”。計(jì)算機(jī)操作系統(tǒng)和應(yīng)用程序紛紛向能訪問諸如網(wǎng)內(nèi)其它計(jì)算機(jī)等網(wǎng)絡(luò)資源的方向發(fā)展。最初這些網(wǎng)絡(luò)設(shè)備僅限于為高端科學(xué)工作者所使用,但90年代后隨著電子郵件和萬維網(wǎng)技術(shù)的擴(kuò)散,以及以太網(wǎng)和ADSL等網(wǎng)絡(luò)連接技術(shù)的廉價(jià)化,互聯(lián)網(wǎng)絡(luò)已變得無所不在。今日入網(wǎng)的計(jì)算機(jī)總數(shù),何止以千萬計(jì);無線互聯(lián)技術(shù)的普及,使得互聯(lián)網(wǎng)在移動(dòng)計(jì)算環(huán)境中亦如影隨形。比如在筆記本計(jì)算機(jī)上廣泛使用的Wi-Fi技術(shù)就是無線上網(wǎng)的代表性應(yīng)用。
下一代計(jì)算機(jī)
自問世以來數(shù)字計(jì)算機(jī)在速度和能力上有了可觀的提升,迄今仍有不少課題顯得超出了當(dāng)前計(jì)算機(jī)的能力所及。對(duì)于其中一部分課題,傳統(tǒng)計(jì)算機(jī)是無論如何也不可能實(shí)現(xiàn)的,因?yàn)檎业揭粋€(gè)解決方法的時(shí)間還趕不上問題規(guī)模的擴(kuò)展速度。因此,科學(xué)家開始將目光轉(zhuǎn)向生物計(jì)算技術(shù)和量子理論來解決這一類問題。比如,人們計(jì)劃用生物性的處理來解決特定問題(DNA計(jì)算)。由于細(xì)胞分裂的指數(shù)級(jí)增長(zhǎng)方式,DNA計(jì)算系統(tǒng)很有可能具備解決同等規(guī)模問題的能力。當(dāng)然,這樣一個(gè)系統(tǒng)直接受限于可控制的DNA總量。
量子計(jì)算機(jī),顧名思義,利用了量子物理世界的超常特性。一旦能夠造出量子計(jì)算機(jī),那么它在速度上的提升將令一般計(jì)算機(jī)難以望其項(xiàng)背。當(dāng)然,這種涉及密碼學(xué)和量子物理模擬的下一代計(jì)算機(jī)還只是停留在構(gòu)想階段。
計(jì)算機(jī)學(xué)科
在當(dāng)今世界,幾乎所有專業(yè)都與計(jì)算機(jī)息息相關(guān)。但是,只有某些特定職業(yè)和學(xué)科才會(huì)深入研究計(jì)算機(jī)本身的制造、編程和使用技術(shù),用來詮釋計(jì)算機(jī)學(xué)科內(nèi)不同研究領(lǐng)域的各個(gè)學(xué)術(shù)名詞的涵義不斷發(fā)生變化,同時(shí)新學(xué)科也層出不窮。
計(jì)算機(jī)工程學(xué):是電子工程的一個(gè)分支,主要研究計(jì)算機(jī)軟硬件和二者間的彼此聯(lián)系。
計(jì)算機(jī)科學(xué):是對(duì)計(jì)算機(jī)進(jìn)行學(xué)術(shù)研究的傳統(tǒng)稱謂。主要研究計(jì)算技術(shù)和執(zhí)行特定任務(wù)的高效算法。該門學(xué)科為我們解決確定一個(gè)問題在計(jì)算機(jī)領(lǐng)域內(nèi)是否可解,如可解其效率如何,以及如何作成更加高效率的程序。時(shí)至今日,在計(jì)算機(jī)科學(xué)內(nèi)已經(jīng)派生了許多分支,每一個(gè)分支都針對(duì)不同類別的問題進(jìn)行深入研究。
軟件工程學(xué):著重于研究開發(fā)高質(zhì)量軟件系統(tǒng)的方法學(xué)和實(shí)踐方式,并試圖壓縮并預(yù)測(cè)開發(fā)成本及開發(fā)周期。
信息系統(tǒng):研究計(jì)算機(jī)在一個(gè)廣泛的有組織環(huán)境(商業(yè)為主)中的計(jì)算機(jī)應(yīng)用。
許多學(xué)科都與其他學(xué)科相互交織。如地理信息系統(tǒng)專家就是利用計(jì)算機(jī)技術(shù)來管理地理信息。
全球有三個(gè)較大規(guī)模的致力于計(jì)算機(jī)科學(xué)的組織:英國(guó)計(jì)算機(jī)學(xué)會(huì);美國(guó)計(jì)算機(jī)協(xié)會(huì);美國(guó)電機(jī)電子工程師協(xié)會(huì)。
免責(zé)聲明:以上內(nèi)容版權(quán)歸原作者所有,如有侵犯您的原創(chuàng)版權(quán)請(qǐng)告知,我們將盡快刪除相關(guān)內(nèi)容。感謝每一位辛勤著寫的作者,感謝每一位的分享。
相關(guān)資料
- 有價(jià)值
- 一般般
- 沒價(jià)值
{{item.userName}} 舉報(bào)
{{item.time}} {{item.replyListShow ? '收起' : '展開'}}評(píng)論 {{curReplyId == item.id ? '取消回復(fù)' : '回復(fù)'}}
{{_reply.userName}} 舉報(bào)
{{_reply.time}}