地下連續牆

[拼音]:chengxu sheji yuyan

[英文]:programming language

用於計算機程式設計的人工語言,包括機器語言、組合語言、巨集組合語言和各種高階程式設計語言。但是一般習慣上主要指高階程式設計語言。

從機器語言到高階程式設計語言

計算機在其指令控制下動作。每臺計算機都配備有一套機器指令,每條指令讓計算機執行一個簡單的特定的動作。例如,從計算機某個儲存器單元中取出一個數,或向某單元送一個數;把兩個數相加、相減、相乘或相除;或使印表機開始列印等。一臺計算機所有指令的集合稱為指令系統。每種計算機的指令系統是不同的,指令系統又稱為機器語言。要讓計算機做一件事,必須把這件事分解為許多小的步驟。每一步驟由一條指令來完成。計算機按順序執行這一系列小步驟,最後完成要做的事情。一系列的步驟寫出來稱為一個程式。用機器語言編寫程式時,要求程式設計師直接使用機器程式碼並分配記憶體儲器,資料也需要寫成二進位制定點形式或浮點形式。編寫程式過程很繁瑣,容易出錯,程式的檢查和除錯也比較困難。機器語言程式直觀性很差,很難讀懂。此外,指令系統是針對某一臺計算機的,因而機器語言沒有通用性,換一臺機器,所有程式都要重新編制。解決這個問題的第一步是使用匯編語言。用匯編語言寫的程式稱為源程式,經過彙編程式加工和翻譯即變成用機器語言寫的目標程式,然後再由計算機執行。組合語言用符號表示操作碼和地址碼,這種符號便於記憶,因此稱為記憶碼。符號地址碼由彙編程式自動處理,分配儲存單元。組合語言允許使用者直接寫十進位制數,由彙編程式轉換成機器內部形式。例如,計算D=A+B-25的彙編程式:

可見,組合語言編寫的程式比機器語言程式容易閱讀、檢查和修改。但組合語言仍然是面向機器的,與計算機指令一一對應,要求程式設計師詳細瞭解計算機的細節。編寫程式仍然是一件很煩瑣的工作。後來人們又提出子程式方法。雖然使用者程式各不相同,但是有些處理過程是許多程式所共同的。例如,許多使用者都要求在他們的程式中解線性代數方程組。如果把求解線性代數方程組的方法編成標準子程式,把其他常用的演算法也編成標準子程式,組成子程式庫,供使用者隨時呼叫,使用者程式中只要簡單地給出幾個引數即可。這樣,不必每個程式設計師都重複同樣的工作,可大大方便程式設計的工作。

高階程式設計語言

50年代初期出現了 FORTRAN等一系列高階程式設計語言,大大促進了計算機的普及推廣。

用高階語言寫的程式也稱為源程式,執行前需要由編譯程式將其轉換為機器語言程式,稱為目標程式。用高階語言編制計算機程式可以不必瞭解具體機器程式碼的知識,程式獨立於具體的機器。在一臺計算機上執行的源程式不加修改或只作很少修改就可在另一臺計算機上執行。高階語言的優點是:

(1)容易學習,描述同樣的過程,用高階語言比機器語言或組合語言容易得多。不過,有些功能很強的程式設計語言比組合語言難學。

(2)高階語言程式中的錯誤容易檢查,因而容易除錯。

(3)程式容易讀懂,便於交流和維護。

(4)編寫程式、除錯程式花費的代價小,雖然編譯處理要花一定的代價,但總的解決問題的代價還是比較小的。現在已有數百種各式各樣的高階程式設計語言,可分為面向過程語言、非過程語言、通用語言和專用語言。

面向過程語言

用這種語言寫程式時,使用者需要描述解決問題的過程,即一組按順序執行的操作。FORTR-AN,COBOL,PL/1等都屬於此類。

非過程語言

使用者描述問題時不必指明解決問題的順序。但這只是一個相對的概念,也就是說隨著近代程式設計技術的改進,需要使用者提供的描述解決問題順序的內容越來越少,即越來越非過程化。報表語言、制定表語言、模擬語言等均屬此類,如RPG、APT、GPSS、DYN-AMO等語言。

通用語言

適用範圍較廣的一類程式設計語言。所謂通用也是相對而言的,因為沒有一種高階語言是適用於一切場合的。一般說,用於科學計算、商業資料處理、字串和表處理的高階語言適用範圍較廣(如BASIC,FO-RTRAN,COBOL PASCAL等)可稱為通用語言。而另一些如用於模擬、影象處理、裝置檢測等高階語言(如APT、COGO、DYNAMO等),適用範圍較窄,可稱為專用語言。

專用語言

滿足單一目標的程式設計語言。這種語言適用於特定應用領域的使用者,由於針對性強,其編譯效率和目標程式執行效率也較高。

常用的程式設計語言

在各類高階程式設計語言中,有幾種應用非常廣泛。

FORTRAN

全稱為FormulaTranslator,意即公式翻譯。它是一種適用於科學計算的高階程式設計語言(見FORTRAN語言)。

COBOL

全稱為CommonBusinessOriented Lan-guage,意即通用商業語言。它是適用於資料處理的高階程式設計語言(見COBOL語言)。

BASIC

全稱為Beginner's All-Purpose Symbolic Instruction Code,意即初學者通用符號指令程式碼。這是一種簡單易學,具有會話功能的,適用於科學計算、資料處理和實時處理的程式設計語言(見BASIC語言)。

PASCAL

出現於1968年。它是以 ALGOL語言為基礎,按照結構程式設計原則設計出來的,它的優點是小巧,簡潔,結構清晰,表達能力強,實現效能高。許多高等學校選它作為程式設計課程的基本語言工具,已成為國際上廣泛流行的一種程式設計語言。PASCAL既重視資料結構,又很重視程式的結構。它適用於科學計算、資料處理和描述系統軟體。

C 語言

70年代初期由美國貝爾實驗室提出。1973年首先用於編寫UNIX作業系統。C語言易讀,程式效率很高,適於描述作業系統、編譯程式和各種軟體工具,已得到廣泛的應用。

LISP語言

這是一種表處理語言,是50年代末60年代初為解決人工智慧問題而發展起來的一種高階程式設計語言(見LISP語言)。LISP有兩個基本的資料型別:原子和表。表是遞迴定義的,即原子是表,兩個表又可以構成一個複合表。表達形式是把兩個表用括號括起來,中間用一個句號隔開。LISP語言對錶規定了一套簡單的運算。例如:由兩個表構造一個複合表;從表中選出其第一個分量;從一個表中去掉第一個分量等。這些都是非數值處理最基本的操作。通過原子、表、表的運算和使用者定義的一些LISP函式,就可以進行符號演算、公式推導、博弈以及其他非數值處理。LISP的理論基礎是數理邏輯,它很簡單又有很強的表達能力。