【文章內(nèi)容簡(jiǎn)介】
處理它們。這就使程序構(gòu)造在更高、更嚴(yán)密的水平上得以實(shí)現(xiàn)。函數(shù)式語(yǔ)言也允許變量——在程序運(yùn)行過(guò)程中可以被用戶指定和更改的數(shù)據(jù)符號(hào)——只被賦值一次。這樣,通過(guò)減少對(duì)語(yǔ)句執(zhí)行的確切順序給予關(guān)注的必要性,就簡(jiǎn)化了編程,因?yàn)橐粋€(gè)變量沒(méi)有必要每次在一個(gè)程序語(yǔ)句中用到,都重新定義或重新賦值。函數(shù)式語(yǔ)言的許多觀點(diǎn)已經(jīng)成為許多現(xiàn)代過(guò)程語(yǔ)言的關(guān)鍵部分。面向?qū)ο蟮恼Z(yǔ)言是函數(shù)式語(yǔ)言的發(fā)展結(jié)果。在面向?qū)ο蟮恼Z(yǔ)言中,用來(lái)編寫(xiě)程序的代碼和程序處理的數(shù)據(jù),組合成叫做對(duì)象的單元。對(duì)象進(jìn)一步組合成類(lèi),而類(lèi)則定義對(duì)象必須具有的屬性。類(lèi)的一個(gè)簡(jiǎn)單例子就是書(shū)這個(gè)類(lèi)。這個(gè)類(lèi)中的對(duì)象可能是小說(shuō)和短篇小說(shuō)。對(duì)象還有某些與其相關(guān)的功能,稱為方法。計(jì)算機(jī)通過(guò)使用對(duì)象的某種方法來(lái)使用這個(gè)對(duì)象。方法對(duì)對(duì)象中的數(shù)據(jù)執(zhí)行某個(gè)操作,然后將值返回給計(jì)算機(jī)。對(duì)象的類(lèi)也可更進(jìn)一步組合成層,而在層中一個(gè)類(lèi)的對(duì)象可繼承另一個(gè)類(lèi)的方法。面向?qū)ο蟮恼Z(yǔ)言中所提供的這種結(jié)構(gòu),使面向?qū)ο蟮恼Z(yǔ)言對(duì)于復(fù)雜的編程任務(wù)非常有用。邏輯語(yǔ)言將邏輯用作其數(shù)學(xué)基礎(chǔ)。一個(gè)邏輯程序由一系列的事實(shí)與“如果……則”規(guī)則組成,來(lái)具體說(shuō)明一系列事實(shí)如何可以從其他實(shí)事中推斷出來(lái),例如:如果X語(yǔ)句為真,則Y語(yǔ)句為假。在這樣一個(gè)程序的執(zhí)行過(guò)程中,一條輸入語(yǔ)句可以按照邏輯從程序中的其他語(yǔ)句推斷出來(lái)。許多人工智能程序使用這種語(yǔ)言編寫(xiě)。四、語(yǔ)言的結(jié)構(gòu)與成分編程語(yǔ)言使用特定類(lèi)型的語(yǔ)句或指令,來(lái)給程序提供功能結(jié)構(gòu)。程序中的一條語(yǔ)句是表達(dá)一個(gè)簡(jiǎn)單意思的基本句子,其目的是給計(jì)算機(jī)一條基本指令。語(yǔ)句對(duì)允許的數(shù)據(jù)類(lèi)型、數(shù)據(jù)如何處理以及過(guò)程和函數(shù)的工作方式進(jìn)行定義。程序員利用語(yǔ)句來(lái)操作編程語(yǔ)言的常見(jiàn)成分,如變量和宏(程序中的小型程序)。數(shù)據(jù)聲明語(yǔ)句給予稱為變量的程序元素以名稱和屬性。變量在程序中可以賦予不同的值。變量可以具有的屬性被稱作類(lèi)型,它們包括:變量中可能存儲(chǔ)什么樣的值,值中使用何種程度的數(shù)值精度,以及一個(gè)變量可以如何以有組織結(jié)構(gòu)的方式——如以表或數(shù)組的形式——代表一組比較簡(jiǎn)單的值等等。在許多編程語(yǔ)言中,一種關(guān)鍵的數(shù)據(jù)類(lèi)型是指示字。指示字變量本身沒(méi)有值;相反,它們含有計(jì)算機(jī)可以用來(lái)查找某個(gè)其他變量的信息——也就是說(shuō),它們指向另一個(gè)變量。表達(dá)式是語(yǔ)句的一段,描述要對(duì)一些程序變量執(zhí)行的一系列運(yùn)算,如X+Y/Z,其中X、Y和Z為變量,運(yùn)算方法為加和除。賦值語(yǔ)句給一個(gè)變量賦予得自某個(gè)表達(dá)式的值,而條件語(yǔ)句則指定要被測(cè)試、然后用于選擇接下來(lái)應(yīng)該執(zhí)行的其他語(yǔ)句的表達(dá)式。過(guò)程與函數(shù)語(yǔ)句將某些代碼塊定義為以后可在程序中返回的進(jìn)程或函數(shù)。這些語(yǔ)句也規(guī)定程序員可以選擇的變量與參數(shù)種類(lèi),以及當(dāng)一個(gè)表達(dá)式使用過(guò)程或函數(shù)時(shí)代碼將返回的值的類(lèi)型。許多編程語(yǔ)言也容許叫做宏的小型翻譯程序。宏把使用程序員定義的語(yǔ)言結(jié)構(gòu)編寫(xiě)的代碼段翻譯成編程語(yǔ)言可以理解的語(yǔ)句。五、歷史編程語(yǔ)言幾乎可以追溯到20世紀(jì)40年代數(shù)字計(jì)算機(jī)發(fā)明之時(shí)。最早的匯編語(yǔ)言,隨著商業(yè)計(jì)算機(jī)的推出,出現(xiàn)于20世紀(jì)50年代末。最早的過(guò)程語(yǔ)言是在20世紀(jì)50年代末到20世紀(jì)60年代初開(kāi)發(fā)的:FORTRAN語(yǔ)言由約翰?巴克斯創(chuàng)造,然后由格雷斯?霍珀創(chuàng)造了COBOL語(yǔ)言。第一種函數(shù)式語(yǔ)言是LISP,由約翰?麥卡錫于20世紀(jì)50年代末編寫(xiě)。這3種語(yǔ)言今天仍在廣泛使用,但經(jīng)歷過(guò)大量修改。20世紀(jì)60年代末,出現(xiàn)了最早的面向?qū)ο蟮恼Z(yǔ)言,如SIMULA語(yǔ)言。邏輯語(yǔ)言在20世紀(jì)70年代中期隨著PROLOG語(yǔ)言的推出而變得廣為人知;PROLOG語(yǔ)言是一種用于編寫(xiě)人工智能軟件的語(yǔ)言。在20世紀(jì)70年代,過(guò)程語(yǔ)言繼續(xù)發(fā)展,出現(xiàn)了ALGOL、BASIC、PASCAL、C和Ada等語(yǔ)言。SMALLTALK語(yǔ)言是一種具有高度影響力的面向?qū)ο蟮恼Z(yǔ)言,它導(dǎo)致了面向?qū)ο蟮恼Z(yǔ)言與過(guò)程語(yǔ)言在C++和更近期的JAVA語(yǔ)言中的結(jié)合。盡管純粹的邏輯語(yǔ)言受歡迎的程度有所下降,但其變體以現(xiàn)代數(shù)據(jù)庫(kù)所使用的關(guān)系語(yǔ)言——如結(jié)構(gòu)化查詢語(yǔ)言——的形式,變得至關(guān)重要。第五單元課文A:計(jì)算機(jī)程序一、引言計(jì)算機(jī)程序是指導(dǎo)計(jì)算機(jī)執(zhí)行某個(gè)功能或功能組合的一套指令。要使指令得到執(zhí)行,計(jì)算機(jī)必須執(zhí)行程序,也就是說(shuō),計(jì)算機(jī)要讀取程序,然后按準(zhǔn)確的順序?qū)嵤┏绦蛑芯幋a的步驟,直至程序結(jié)束。一個(gè)程序可多次執(zhí)行,而且每次用戶輸給計(jì)算機(jī)的選項(xiàng)和數(shù)據(jù)不同,就有可能得到不同的結(jié)果。程序可分為兩大類(lèi):應(yīng)用程序和操作系統(tǒng)。應(yīng)用程序直接為用戶執(zhí)行某項(xiàng)功能,如字處理或玩游戲。操作系統(tǒng)管理計(jì)算機(jī)和與之相連的各種資源和設(shè)備,如隨機(jī)訪問(wèn)存儲(chǔ)器、硬盤(pán)驅(qū)動(dòng)器、監(jiān)視器、鍵盤(pán)、打印機(jī)和調(diào)制解調(diào)器,以便使其他程序可以使用它們。操作系統(tǒng)的例子包括:DOS、Windows 9OS/2和UNIX。二、程序開(kāi)發(fā)軟件設(shè)計(jì)者通過(guò)特殊的應(yīng)用程序來(lái)開(kāi)發(fā)新程序,這些應(yīng)用程序常被稱作實(shí)用程序或開(kāi)發(fā)程序。程序員使用稱作文本編輯器的另一種程序,來(lái)以稱作編程語(yǔ)言的特殊標(biāo)記編寫(xiě)新程序。使用文本編輯器,程序員創(chuàng)建一個(gè)文本文件,這個(gè)文本文件是一個(gè)有序指令表,也稱為程序源文件。構(gòu)成程序源文件的單個(gè)指令被稱為源代碼。在這個(gè)時(shí)候,一種特殊的應(yīng)用程序?qū)⒃创a翻譯成機(jī)器語(yǔ)言或目標(biāo)代碼——操作系統(tǒng)將認(rèn)作真程序并能夠執(zhí)行的一種格式。將源代碼翻譯成目標(biāo)代碼的應(yīng)用程序有3種:編譯器、解釋器和匯編程序。這3種應(yīng)用程序在不同類(lèi)型的編程語(yǔ)言上執(zhí)行不同的操作,但是它們都起到將編程語(yǔ)言翻譯成機(jī)器語(yǔ)言的相同目的。編譯器將使用FORTRAN、C和Pascal等高級(jí)編程語(yǔ)言編寫(xiě)的文本文件一次性從源代碼翻譯成目標(biāo)代碼。這不同于BASIC等解釋執(zhí)行的語(yǔ)言所采取的方式,在解釋執(zhí)行的語(yǔ)言中程序是隨著每條指令的執(zhí)行而逐個(gè)語(yǔ)句地翻譯成目標(biāo)代碼的。解釋執(zhí)行的語(yǔ)言的優(yōu)點(diǎn)是,它們可以立即開(kāi)始執(zhí)行程序,而不需要等到所有的源代碼都得到編譯。對(duì)程序的更改也可以相當(dāng)快地作出,而無(wú)需等到重新編譯整個(gè)程序。解釋執(zhí)行的語(yǔ)言的缺點(diǎn)是,它們執(zhí)行起來(lái)慢,因?yàn)槊看芜\(yùn)行程序,都必須對(duì)整個(gè)程序一次一條指令地翻譯。另一方面,編譯執(zhí)行的語(yǔ)言只編譯一次,因此計(jì)算機(jī)執(zhí)行起來(lái)要比解釋執(zhí)行的語(yǔ)言快得多。由于這個(gè)原因,編譯執(zhí)行的語(yǔ)言更常使用,而且在專業(yè)和科學(xué)領(lǐng)域幾乎總是得到采用。另一種翻譯器是匯編程序,它被用于以匯編語(yǔ)言編寫(xiě)的程序或程序組成部分。匯編語(yǔ)言也是一種編程語(yǔ)言,但它比其他類(lèi)型的高級(jí)語(yǔ)言更接近于機(jī)器語(yǔ)言。在匯編語(yǔ)言中,一條語(yǔ)句通??梢苑g成機(jī)器語(yǔ)言的一條指令。今天,匯編語(yǔ)言很少用來(lái)編寫(xiě)整個(gè)程序,而是最經(jīng)常地采用于程序員需要直接控制計(jì)算機(jī)某個(gè)方面功能的場(chǎng)合。程序經(jīng)常被編寫(xiě)作一套較小的程序段,每段代表整個(gè)應(yīng)用程序的某個(gè)方面。各段獨(dú)立編譯之后,一種被稱為連接程序的程序?qū)⑺芯幾g好的程序段組合成一個(gè)可以執(zhí)行的完整程序。程序很少有第一次能夠正確運(yùn)行的,所以一種被稱為調(diào)試程序的程序常被用來(lái)幫助查找被稱為程序錯(cuò)誤的問(wèn)題。調(diào)試程序通常在運(yùn)行的程序中檢測(cè)到一個(gè)事件,并向程序員指出事件在程序代碼中的起源。最近出現(xiàn)的編程系統(tǒng),如Java,采取多種方法相結(jié)合的方式創(chuàng)建和執(zhí)行程序。編譯器取來(lái)Java源程序,并將其翻譯成中間形式。這樣的中間程序隨后通過(guò)因特網(wǎng)傳送給計(jì)算機(jī),而這些計(jì)算機(jī)里的解釋程序接下來(lái)將中間程序作為應(yīng)用程序來(lái)執(zhí)行。三、程序元素大多數(shù)程序只是由少數(shù)幾種步驟構(gòu)成,這些步驟在整個(gè)程序中在不同的上下文和以不同的組合方式多次重復(fù)。最常見(jiàn)的步驟執(zhí)行某種計(jì)算,然后按照程序員指定的順序,進(jìn)入程序的下一個(gè)步驟。程序經(jīng)常需要多次重復(fù)不長(zhǎng)的一系列步驟,例如,瀏覽游戲得分表,從中找出最高得分。這種重復(fù)的代碼序列稱為循環(huán)。計(jì)算機(jī)所具有的使其如此有用的能力之一,就是它們能夠作出條件判定,并根據(jù)正在處理的數(shù)據(jù)的值執(zhí)行不同的指令。ifthenelse(如果-則-否則)語(yǔ)句通過(guò)測(cè)試某個(gè)數(shù)據(jù)段,然后根據(jù)結(jié)果從兩個(gè)指令序列中選出一個(gè),來(lái)執(zhí)行這個(gè)功能。這些選擇對(duì)象中的指令之一可能是一個(gè)goto語(yǔ)句,用以指引計(jì)算機(jī)從程序的另一個(gè)部分選擇下一條指令。例如,一個(gè)程序可能比較兩個(gè)數(shù),并依據(jù)比較的結(jié)果而分支到程序的另一個(gè)部分:If x is greater than ythengoto instruction 10else continue程序經(jīng)常不止一次地使用特定的一系列步驟。這樣的一系列步驟可以組合成一個(gè)子例程,而子例程根據(jù)需要可在主程序的不同部分進(jìn)行調(diào)用或訪問(wèn)。每次調(diào)用一個(gè)子例程,計(jì)算機(jī)都會(huì)記住它自己在該調(diào)用發(fā)生時(shí)處在程序的那個(gè)位置,以便在運(yùn)行完該子例程后還能夠回到那里。在每次調(diào)用之前,程序可以指定子例程使用不同的數(shù)據(jù),從而做到一個(gè)通用性很強(qiáng)的代碼段只編寫(xiě)一次,而被以多種方式使用。大多數(shù)程序使用幾種不同的子例程。其中最常用的是函數(shù)、過(guò)程、庫(kù)程序、系統(tǒng)程序以及設(shè)備驅(qū)動(dòng)程序。函數(shù)是一種短子例程,用來(lái)計(jì)算某個(gè)值,如角的計(jì)算,而該值計(jì)算機(jī)僅用一條基本指令無(wú)法計(jì)算。過(guò)程執(zhí)行的是復(fù)雜一些的功能,如給一組名稱排序。庫(kù)程序是為許多不同的程序使用而編寫(xiě)的子例程。系統(tǒng)程序和庫(kù)程序相似,但實(shí)際上用于操作系統(tǒng)。它們?yōu)閼?yīng)用程序提供某種服務(wù),如打印一行文字。設(shè)備驅(qū)動(dòng)程序是一種系統(tǒng)程序,它們加到操作系統(tǒng)中,以使計(jì)算機(jī)能夠與掃描儀、調(diào)制解調(diào)器或打印機(jī)等新設(shè)備進(jìn)行通信。設(shè)備驅(qū)動(dòng)程序常常具有可以直接作為應(yīng)用程序執(zhí)行的特征。這樣就使用戶得以直接控制該設(shè)備。這一點(diǎn)很有用,例如,在彩色打印機(jī)更換墨盒后,需要重新調(diào)整以達(dá)到最佳打印質(zhì)量的情況下。四、程序功能現(xiàn)代計(jì)算機(jī)通常將程序存儲(chǔ)在計(jì)算機(jī)可以隨機(jī)訪問(wèn)的某種形式的磁性存儲(chǔ)介質(zhì)上,如固定放在計(jì)算機(jī)中的硬盤(pán)或者便攜式的軟盤(pán)。這些磁盤(pán)上被稱為目錄的額外信息,指明盤(pán)上各種程序的名稱、它們寫(xiě)入盤(pán)中的時(shí)間以及它們?cè)诖疟P(pán)介質(zhì)上的開(kāi)始位置。當(dāng)用戶命令計(jì)算機(jī)執(zhí)行一個(gè)特定應(yīng)用程序時(shí),操作系統(tǒng)就瀏覽這些目錄,找到程序,并將一個(gè)副本讀入隨機(jī)存儲(chǔ)器。操作系統(tǒng)然后命令中央處理器在程序的起始位置開(kāi)始執(zhí)行指令。程序起始位置的指令為計(jì)算機(jī)處理信息作好準(zhǔn)備,其方法是在隨機(jī)存儲(chǔ)器中找到閑置內(nèi)存位置來(lái)容納工作數(shù)據(jù),從盤(pán)中取回用戶指出的標(biāo)準(zhǔn)方式選項(xiàng)和默認(rèn)值的副本,并在監(jiān)視器上繪制初始顯示。應(yīng)用程序通過(guò)調(diào)用系統(tǒng)程序而對(duì)用戶輸入的任何信息都要求一個(gè)副本。操作系統(tǒng)將如此輸入的任何數(shù)據(jù)轉(zhuǎn)換成標(biāo)準(zhǔn)的內(nèi)部形式。應(yīng)用程序然后使用該信息決定下一步干什么——例如,執(zhí)行某項(xiàng)期望的處理功能——如重新定義一頁(yè)文本的格式,或者從盤(pán)上的另一個(gè)文件獲取某些額外信息。兩種情況無(wú)論是哪一種,都要調(diào)用其他系統(tǒng)程序,以事實(shí)上完成結(jié)果的顯示或?qū)ΡP(pán)上文件的訪問(wèn)。運(yùn)行結(jié)束或接到退出的提示時(shí),應(yīng)用程序進(jìn)行進(jìn)一步的系統(tǒng)調(diào)用,以確保所有需要保存的數(shù)據(jù)已寫(xiě)回磁盤(pán)。然后,應(yīng)用程序向操作系統(tǒng)進(jìn)行最后一次系統(tǒng)調(diào)用,指明它已運(yùn)行結(jié)束。操作系統(tǒng)接下來(lái)釋放隨機(jī)存儲(chǔ)器和該應(yīng)用程序使用的任何設(shè)備,并等待用戶的命令,以開(kāi)始運(yùn)行另一個(gè)程序。五、歷史人們用程序的形式存儲(chǔ)一系列指令已經(jīng)有幾個(gè)世紀(jì)了。18世紀(jì)的音樂(lè)盒和19世紀(jì)末與20世紀(jì)初的自動(dòng)鋼琴,就可以播放音樂(lè)程序。這些程序以一系列金屬針或紙孔的形式存儲(chǔ),每一行(針或孔)表示何時(shí)演奏一個(gè)音符,而針或孔則表明此時(shí)演奏什么音符。19世紀(jì)初,隨著法國(guó)發(fā)明家約瑟夫―瑪麗?雅卡爾的由穿孔卡片控制的織機(jī)的發(fā)明,對(duì)物理設(shè)備更精巧的控制變得常見(jiàn)了。在編織特定圖案的過(guò)程中,織機(jī)的各個(gè)部分得進(jìn)行機(jī)械定位。為了使這個(gè)過(guò)程自動(dòng)化,雅卡爾使用一張紙質(zhì)卡片代表織機(jī)的一個(gè)定位,用卡片上的孔來(lái)指示該執(zhí)行織機(jī)的哪個(gè)操作。整條花毯的編織可被編碼到一疊這樣的卡片上,同樣的一疊卡片每次使用都會(huì)編出相同的花毯圖案。在開(kāi)發(fā)和使用的程序中,有的由24,000多張卡片構(gòu)成。世界上第一臺(tái)可編程的機(jī)器是由英國(guó)數(shù)學(xué)家和發(fā)明家查爾斯?巴比奇設(shè)計(jì)的,但從未完全制造成。這臺(tái)叫做分析機(jī)的機(jī)器,使用和雅卡爾的織機(jī)類(lèi)似的穿孔卡片來(lái)選擇每個(gè)步驟應(yīng)執(zhí)行的具體算術(shù)運(yùn)算。插入不同的卡片組,就會(huì)改變機(jī)器執(zhí)行的運(yùn)算。這種機(jī)器幾乎能在現(xiàn)代計(jì)算機(jī)中找到所有的對(duì)應(yīng)物,但它是機(jī)械化的,而非電氣化的。分析機(jī)的制造從未完成,因?yàn)橹圃焖枰募夹g(shù)當(dāng)時(shí)不存在。供分析機(jī)使用的最早卡片組程序是由詩(shī)人拜倫勛爵的女兒、英國(guó)數(shù)學(xué)家?jiàn)W古斯塔??埃達(dá)?拜倫開(kāi)發(fā)的。由于這個(gè)原因,她被確認(rèn)為世界上第一位程序員?,F(xiàn)代的內(nèi)部存儲(chǔ)計(jì)算機(jī)程序的概念是由美籍匈牙利數(shù)學(xué)家約翰??馮?諾伊曼于1945年首先提出來(lái)的。馮?諾伊曼的想法是使用計(jì)算機(jī)的存儲(chǔ)器來(lái)既存儲(chǔ)數(shù)據(jù)又存儲(chǔ)程序。這樣,程序可被視作數(shù)據(jù),可像數(shù)據(jù)一樣被其他程序處理。這一想法極大地簡(jiǎn)化了計(jì)算機(jī)中的程序存儲(chǔ)與執(zhí)行的任務(wù)六、未來(lái)由于計(jì)算機(jī)使用的增加,自20世紀(jì)50年代以來(lái),計(jì)算機(jī)科學(xué)領(lǐng)域發(fā)展迅猛。作為對(duì)用戶需求和技術(shù)發(fā)展的反應(yīng),計(jì)算機(jī)程序在這一時(shí)期經(jīng)歷了許多變化。計(jì)算領(lǐng)域的新思想,如并行計(jì)算、分布式計(jì)算和人工智能,從根本上改變了一度決定程序形式與功能的傳統(tǒng)概念。工作在并行計(jì)算——其中多個(gè)中央處理器合作同時(shí)處理同一個(gè)問(wèn)題——領(lǐng)域中的科學(xué)家,推出了許多新的程序模型。在并行計(jì)算中,一個(gè)問(wèn)題的組成部分由不同的處理器同時(shí)處理,這樣就加快了問(wèn)題的解決速度。由于并行處理計(jì)算機(jī)的極端復(fù)雜性以及使其盡可能有效地運(yùn)行所包含的困難,為這種系統(tǒng)設(shè)計(jì)程序的科學(xué)家和工程師面臨著許多挑戰(zhàn)。被稱為分布式計(jì)算的另一種并行計(jì)算,使用許多互相連接的計(jì)算機(jī)的中央處理器來(lái)解決問(wèn)題。用來(lái)在分布式計(jì)算應(yīng)用環(huán)境中處理信息的計(jì)算機(jī),常常通過(guò)因特網(wǎng)互相連接。因特網(wǎng)的應(yīng)用正在成為分布式計(jì)算的一種特別有用的形式,尤其是在使用Java等編程語(yǔ)言的情況下。在這種應(yīng)用中,用戶登錄到一個(gè)站點(diǎn),并下載一個(gè)Java程序到其計(jì)算機(jī)上。該Java程序運(yùn)行時(shí),就與其主站點(diǎn)上的其他程序進(jìn)行通信,也可以與不同計(jì)算機(jī)或站點(diǎn)上運(yùn)行的其他程序進(jìn)行通信。人工智能(AI)的研究,已經(jīng)導(dǎo)致幾種其他的新程序設(shè)計(jì)風(fēng)格的產(chǎn)生。例如,邏輯程序不是由供計(jì)算機(jī)盲目執(zhí)行的單個(gè)指令構(gòu)成,而是由成套的規(guī)則組成:如果x發(fā)生,則執(zhí)行y。一種被稱為推理機(jī)的特殊程序,在向其提出一個(gè)新問(wèn)題時(shí),就使用這些規(guī)則來(lái)“推理”出一個(gè)結(jié)果。邏輯程序的用途包括對(duì)復(fù)雜系統(tǒng)的自動(dòng)監(jiān)控和證明數(shù)學(xué)定律。一種全然不同的計(jì)算方法稱為神經(jīng)網(wǎng)絡(luò),在這種計(jì)算中沒(méi)有傳統(tǒng)意義上的程序。神經(jīng)網(wǎng)絡(luò)是一組旨在模擬大腦的具有高度互連性的簡(jiǎn)單處理單元。神經(jīng)網(wǎng)絡(luò)不是像傳統(tǒng)計(jì)算機(jī)那樣通過(guò)程序來(lái)指導(dǎo)信息處理,而是依靠其處理單元的連接方式來(lái)處理信息。給神經(jīng)網(wǎng)絡(luò)編程的實(shí)現(xiàn)方法是,給其提供輸入與輸出數(shù)據(jù)的已知模式,并調(diào)整處理單元之間各種互