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