世界上第一臺電子數(shù)字式計算機(jī)eniac(electronicdiscretevariableautomaticcomputer)(如圖1所示)于1946年2月15日在美國賓夕法尼亞大學(xué)正式投入運(yùn)行,奠定了電子計算機(jī)的發(fā)展基礎(chǔ),開辟了一個計算機(jī)科學(xué)技術(shù)的新紀(jì)元。
圖1eniac
1946年6月,美籍匈牙利數(shù)學(xué)家馮·諾依曼提出了重大的改進(jìn)理論,主要有兩點:其一是電子計算機(jī)應(yīng)該以二進(jìn)制為運(yùn)算基礎(chǔ),其二是電子計算機(jī)應(yīng)采用“存儲程序”方式工作。馮·諾依曼體制的主要思想(如圖2所示)包括:
(1)采用二進(jìn)制代碼形式表示信息(數(shù)據(jù)、指令);
(2)采用存儲程序工作方式(馮·諾依曼思想最核心的概念);
(3)計算機(jī)硬件系統(tǒng)由五大部件(運(yùn)算器、控制器、存儲器、輸入設(shè)備和輸出設(shè)備)組成。
圖2馮·諾依曼體制
這些思想奠定了現(xiàn)代計算機(jī)的基本結(jié)構(gòu),并且開創(chuàng)了程序設(shè)計的新時代。馮·諾依曼對計算機(jī)界的最大貢獻(xiàn)在于“存儲程序控制”概念的提出和實現(xiàn),主要包含以下三個方面的思想。
(1)根據(jù)任務(wù)編制程序
計算機(jī)對任務(wù)的處理,首先必須設(shè)計相應(yīng)的算法,而算法是通過程序來實現(xiàn)的,程序就是一條條的指令,告訴計算機(jī)按照一定的步驟不斷地去執(zhí)行。程序中還應(yīng)提供需要處理的數(shù)據(jù),或者規(guī)定計算機(jī)在什么時候、什么情況下從輸入設(shè)備取得數(shù)據(jù),或向輸出設(shè)備輸出數(shù)據(jù)。
(2)將編制好的程序存儲在計算機(jī)內(nèi)部
計算機(jī)只能識別二進(jìn)制文件,也就是一串0和1的組合。我們編寫的程序,不管使用哪種語言,如匯編語言、c、java等,最終都要編譯成二進(jìn)制代碼,也就是機(jī)器語言,計算機(jī)才能夠讀懂和識別,才能按照一條條指令去執(zhí)行diangon.com。因此,編寫好的程序最終將變?yōu)橹噶钚蛄泻驮紨?shù)據(jù),保存在存儲器中,提供給計算機(jī)執(zhí)行。
(3)計算機(jī)能夠自動、連續(xù)地執(zhí)行程序,并得到需要的結(jié)果
存儲器就是一個個小房間,并且按照一定的地址進(jìn)行編號,需要執(zhí)行的指令和數(shù)據(jù)都以二進(jìn)制代碼的形式存放在存儲器中。計算機(jī)開始執(zhí)行程序,設(shè)置一個程序計數(shù)器pc(programcounter)指向需要執(zhí)行的指令或者代碼處,每執(zhí)行一個字節(jié)的指令,pc計數(shù)器自動加1,如果程序需要轉(zhuǎn)移,pc指向轉(zhuǎn)移地址處,按照轉(zhuǎn)移地址讀取后續(xù)指令。計算機(jī)就是這樣能夠自動地、連續(xù)不斷地從存儲器中逐條讀取指令,并且完成相應(yīng)操作,直到整個程序執(zhí)行完畢。
馮·諾依曼的這些理論的提出,解決了計算機(jī)運(yùn)算自動化的問題和速度配合問題,對后來計算機(jī)的發(fā)展起到了決定性的作用。直至今天,絕大部分的計算機(jī)還是采用馮·諾依曼方式工作。