§2.1 程序開(kāi)發(fā)語(yǔ)言
§2.1.1 程序設(shè)計(jì)語(yǔ)言的發(fā)展過(guò)程
程序設(shè)計(jì)語(yǔ)言經(jīng)歷了從機(jī)器語(yǔ)言、匯編語(yǔ)言到高級(jí)語(yǔ)言這樣一個(gè)發(fā)展過(guò)程。
在計(jì)算機(jī)剛誕生的時(shí)候,人們還沒(méi)有發(fā)明一種工具可以用來(lái)比較方便地指揮計(jì)算機(jī)工作,計(jì)算機(jī)程序是直接用計(jì)算機(jī)能識(shí)別的二進(jìn)制指令來(lái)書(shū)寫(xiě)的。由于目前的數(shù)字式電子計(jì)算機(jī)是二進(jìn)制的,它只能識(shí)別“0”或“1”以及它們的序列,所以這種二進(jìn)制編碼的指令是計(jì)算機(jī)唯一能識(shí)別和執(zhí)行的指令。這種用二進(jìn)制代碼書(shū)寫(xiě)指令和程序的語(yǔ)言稱為機(jī)器語(yǔ)言。機(jī)器語(yǔ)言是直接對(duì)計(jì)算機(jī)硬件產(chǎn)生作用的,所以不同型號(hào)的計(jì)算機(jī)的機(jī)器語(yǔ)言又不一樣,這些使得機(jī)器語(yǔ)言很難被人掌握和推廣,因此一般只有少數(shù)計(jì)算機(jī)專家或者專業(yè)技術(shù)人員才使用。
用機(jī)器語(yǔ)言編制出來(lái)的程序可讀性很差,程序難以修改和維護(hù)。為了提高程序設(shè)計(jì)效率,人們考慮用有助記憶的符號(hào)來(lái)表示機(jī)器指令中的操作碼和操作數(shù),例如在機(jī)器語(yǔ)言中,二進(jìn)制數(shù)10110110代表加法運(yùn)算,那么可以用英文單詞ADD來(lái)代表。這就是匯編語(yǔ)言,它實(shí)際上是一種符號(hào)化的機(jī)器語(yǔ)言。顯然,一個(gè)有意義的英文單詞比一長(zhǎng)串二進(jìn)制數(shù)要簡(jiǎn)潔直觀且好記多了。不過(guò),用匯編語(yǔ)言編寫(xiě)的指令和程序必須經(jīng)過(guò)翻譯程序?qū)R編程序翻譯成二進(jìn)制代碼的指令和程序,計(jì)算機(jī)才能識(shí)別和執(zhí)行。
雖然用匯編語(yǔ)言來(lái)編制程序,使編制程序的效率和程序的可讀性都提高了。然而,由于匯編語(yǔ)言和機(jī)器語(yǔ)言都是面向機(jī)器的語(yǔ)言,而且在程序的書(shū)寫(xiě)形式上很難直觀地反映出程序設(shè)計(jì)者的思路,因此人們發(fā)明了與人類的自然語(yǔ)言非常接近的高級(jí)程序設(shè)計(jì)語(yǔ)言。高級(jí)語(yǔ)言不僅易學(xué)、易用,而且寫(xiě)出的程序更加簡(jiǎn)練,同一個(gè)程序還可以用在不同型號(hào)的機(jī)器上。舉個(gè)例,我們要求兩個(gè)數(shù)的和,在高級(jí)語(yǔ)言中可以用一個(gè)很簡(jiǎn)單的語(yǔ)句C=A+B;來(lái)表示,但在匯編語(yǔ)言或機(jī)器語(yǔ)言中,這可能就是幾條甚至幾十條機(jī)器指令構(gòu)成的一個(gè)程序段,在不同型號(hào)的機(jī)器上構(gòu)成這個(gè)程序段的機(jī)器指令還不同,而且除非程序設(shè)計(jì)者告訴你這是一個(gè)實(shí)現(xiàn)加法的程序,常人要讀懂它也不是那么容易。但是,用高級(jí)語(yǔ)言編寫(xiě)的程序還不能被計(jì)算機(jī)直接理解和執(zhí)行,而必須先由這種語(yǔ)言的編譯程序或者解釋程序翻譯成機(jī)器指令,然后再讓計(jì)算機(jī)執(zhí)行機(jī)器指令。
§2.1.2 各種應(yīng)用中的程序設(shè)計(jì)語(yǔ)言選擇
程序語(yǔ)言已經(jīng)歷了40多年的發(fā)展,其間人們提出并完善了許多程序語(yǔ)言的概念。程序語(yǔ)言具有交流算法和計(jì)算機(jī)實(shí)現(xiàn)的兩重目的,現(xiàn)在程序語(yǔ)言種類繁多,它們?cè)趹?yīng)用上各有不同的側(cè)重面。
1. 用于科學(xué)工程計(jì)算
科學(xué)工程計(jì)算需要大量的標(biāo)準(zhǔn)函數(shù)庫(kù),以便處理復(fù)雜的數(shù)值計(jì)算,一般選用的語(yǔ)言有FORTRAN、Pascal、C以及PL/1。
FORTRAN是第一個(gè)被廣泛應(yīng)用進(jìn)行科學(xué)計(jì)算的高級(jí)語(yǔ)言,產(chǎn)生于1954年,經(jīng)過(guò)FORTRAN 0到FORTRAN IV,又相繼擴(kuò)展為FORTRAN 77,F(xiàn)ORTRAN 90等。一個(gè)FORTRAN程序有一個(gè)主程序或一個(gè)主程序與若干個(gè)子程序組成。主程序及每一個(gè)子程序都分別是獨(dú)立的程序單位,稱為程序模塊。在FORTRAN中,子程序是實(shí)現(xiàn)模塊化的有效途徑。FORTRAN的結(jié)構(gòu)特別簡(jiǎn)單,除了輸入和輸出部分外,幾乎所有FORTRAN成分都可以用硬件結(jié)構(gòu)直接實(shí)現(xiàn),從而使執(zhí)行效率相當(dāng)高。經(jīng)過(guò)幾個(gè)版本不斷的更新,使它不僅面向科學(xué)計(jì)算,數(shù)據(jù)處理能力也很強(qiáng)。
Pascal語(yǔ)言產(chǎn)生于20世紀(jì)60年代末,它提供為數(shù)不多然而又相當(dāng)緊湊的機(jī)制,具有很強(qiáng)的數(shù)據(jù)和過(guò)程結(jié)構(gòu)化能力,它是第一個(gè)體現(xiàn)結(jié)構(gòu)化變成思想的語(yǔ)言。它的數(shù)據(jù)結(jié)構(gòu)功能,尤其是用戶自定義的數(shù)據(jù)類型以及該語(yǔ)言的公理化定義,使得它在高級(jí)語(yǔ)言的領(lǐng)域內(nèi)具有很大的吸引力。由于Pascal語(yǔ)言簡(jiǎn)明,數(shù)據(jù)類型豐富,程序結(jié)構(gòu)嚴(yán)謹(jǐn),許多算法都用類Pascal來(lái)概括。
|
|