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

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

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

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

  用高級語言寫的程序也稱為源程序,執行前需要由編譯程序將其轉換為機器語言程序,稱為目標程序。用高級語言編制計算機程序可以不必瞭解具體機器代碼的知識,程序獨立於具體的機器。在一臺計算機上運行的源程序不加修改或隻作很少修改就可在另一臺計算機上運行。高級語言的優點是:①容易學習,描述同樣的過程,用高級語言比機器語言或匯編語言容易得多。不過,有些功能很強的程序設計語言比匯編語言難學。②高級語言程序中的錯誤容易檢查,因而容易調試。③程序容易讀懂,便於交流和維護。④編寫程序、調試程序花費的代價小,雖然編譯處理要花一定的代價,但總的解決問題的代價還是比較小的。現在已有數百種各式各樣的高級程序設計語言,可分為面向過程語言、非過程語言、通用語言和專用語言。

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

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

  通用語言 適用范圍較廣的一類程序設計語言。所謂通用也是相對而言的,因為沒有一種高級語言是適用於一切場合的。一般說,用於科學計算、商業數據處理、字符串和表處理的高級語言適用范圍較廣(如BASIC,FO-RTRAN,COBOL PASCAL等)可稱為通用語言。而另一些如用於仿真、圖像處理、設備檢測等高級語言(如APT、COGO、DYNAMO等),適用范圍較窄,可稱為專用語言。

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

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

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

  COBOL 全稱為Common Business Oriented 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的理論基礎是數理邏輯,它很簡單又有很強的表達能力。