登錄

程序設計語言

百科 > 計算機 > 程序設計語言

1.什么是程序設計語言[1]

  程序設計語言是指用來編譯、解釋、處理各種程序時所使用的機器語言,它包括匯編語言、解釋程序、編譯程序及高級語言等,如Visual Basic(簡稱VB)、Visual C++(簡稱VC)、Delphi等。

2.程序設計語言的發(fā)展[2]

  程序設計語言是人們?yōu)榱嗣枋鲇嬎氵^程而設計的一種具有語法語義描述的記號。程序設計語言與現代計算機共同誕生、共同發(fā)展,至今已有60余年的歷史,早已形成了規(guī)模龐大的家族。進入20世紀80年代以后,隨著計算機的日益普及和性能的不斷改進,程序設計語言也相應得到了迅猛發(fā)展。

  最早的第一代程序設計語言是機器語言。機器語言是一種用二進制代碼“0”和“1”表示的、能被計算機直接識別和執(zhí)行的語言,它是一種低級語言。用機器語言編寫的程序稱為計算機機器語言程序,這種程序不便于記憶、閱讀和書寫。每一種機器都有自己的機器語言,即計算機指令系統(tǒng),因此沒有通用性。

  第二代程序設計語言是匯編語言。匯編語言是一種用助記符表示的面向機器的程序設計語言,即符號化的機器語言,如用助記符ADD表示加法、STORE表示存數操作等。用匯編語言編制的程序稱為匯編語言程序,機器不能直接識別和執(zhí)行,必須由匯編程序翻譯成機器語言程序(目標程序)才能運行。匯編語言適用于編寫直接控制機器操作的底層程序,它與機器類型密切相關。因此,機器語言和匯編語言都是面向機器的語言,一般稱為低級語言。

  第三代程序設計語言是所謂的高級語言。高級語言是一種比較接近自然語言和數學表達式的計算機程序設計語言,是“面向用戶的語言”。一般用高級語言編寫的程序稱為“源程序”,計算機不能直接識別和執(zhí)行,必須把用高級語言編寫的源程序翻譯成機器指令才能執(zhí)行,通常有編譯和解釋兩種方式。編譯是將源程序整個編譯成目標程序,然后通過連接程序將目標程序連接成可執(zhí)行程序。解釋是將源程序逐句翻譯,翻譯一句執(zhí)行一句,邊翻譯邊執(zhí)行,不產生目標程序,由計算機執(zhí)行解釋程序自動完成。

  1956年由美國科學家John Backus領導的小組設計的FORTRAN語言是高級語言的開端,由于它的簡潔和高效,成為此后幾十年科學和工程計算程序開發(fā)的主流語言。但FORTRAN是面向計算機專業(yè)人員的語言,為了普及計算機語言,使計算機應用更為大眾化,之后又出現了BASIc語言。

  隨著計算機技術的發(fā)展和應用的深入,在20世紀70年代,由結構化程序設計的思想孵化出了兩種結構化程序設計語言:Pascal和C。其中Pascal語言強調可讀性,使其至今仍為學習算法和數據結構等軟件基礎知識的首選教學語言;而C語言強調語言的簡潔和高效,使之成為幾十年中主流的軟件開發(fā)語言。

  隨著面向對象程序設計思想的普及,20世紀80年代,由AT&T貝爾實驗室在C語言的基礎上設計并實現的c++語言成為眾多面向對象語言中的代表。隨后,c++和其他高級語言如BAsIC、Pascal等,結合可視化的界面編程技術、面向對象思想及數據庫技術,產生了所謂的第四代語言——面向對象語言,如Ⅵsual Basic、Delphi、Visual c++、c++Builder等。

3.程序設計語言的分類[3]

  從發(fā)展進程可分為面向機器的語言和高級語言。

  (1)面向機器的語言(機器語言、匯編語言):依賴于結構,其指令系統(tǒng)隨機器而異、生產效率低、容易出錯、難以維護。

  (2)高級語言:使用的概念和符號與人們通常使用的比較接近,一條語句往往對應若干條機器指令,其特性不依賴于特定的計算機。

  從應用特點可做如下分類:

  (1)基礎語言:如Basic、FORTRAN、COBOL、ALGOL等,歷史悠久、應用廣泛。

  (2)結構化語言:具有為某種特殊應用而設計的、獨特的、很強的過程能力和數據結構能力的特點,如PL/l,Pascal,C,Ada等。

  (3)專用語言:具有為某種特殊應用而設計的獨特語法形式,應用范圍較寬,如APL(數據和向量運算)、BLISS(開發(fā)編譯程序和操作系統(tǒng))、FORTH(開發(fā)微處理機軟件)、LISP和Prolog(適合于人工智能領域)。

  從語言的內在特點可做如下分類:

  (1)系統(tǒng)實現語言:提供控制語句和變量類型檢測等功能,同時允許程序員直接使用機器操作,如C。

  (2)靜態(tài)高級語言:提供某些控制語句和變量說明的機制,但程序員不能直接控制,由編譯程序生成的機器操作,靜態(tài)分配存儲,如COBOL、FORTH。

  (3)塊結構高級語言:提供有限的動態(tài)存儲分配,如ALGOL、Pascal。

  (4)動態(tài)高級語言:動態(tài)地完成所有存儲管理,即執(zhí)行個別語句可能分配或釋放存儲,如某些專用語言。

  (5)甚高級語言(4GL):以數據或知識為基礎,以對集合的處理代替對單個記錄或元素的處理,能支持對大型數據庫進行高效處理的機制,如SQL。

4.程序設計語言的特性[3]

  程序設計語言具有心理工程及技術等特性。

  (1)心理特性:歧義性、簡潔性、局部性、順序性、傳統(tǒng)性。

  (2)工程特性:可移植性,開發(fā)工具的可利用性,軟件的可重用性、可維護性。

  (3)技術特性:支持結構化構造的語言有利于減少程序環(huán)路的復雜性,使程序易測試、易維護。

5.程序設計語言的選擇[3]

  程序設計語言特點不同,適用領域也不同,以下從不同角度介紹選擇的方法。

  1、項目的應用領域

  (1)科學工程計算。需要大量的標準庫函數,以便處理復雜的數值計算,可供選用的語言有FORTRAN語言、C語言等。

  (2)數據處理與數據庫應用。SQL為IBM公司開發(fā)的數據庫查詢語言,4GL稱為第4代語言。

  (3)實時處理。實時處理軟件一般對性能的要求很高,可選用的語言有匯編語言、Ada語言等。

  (4)系統(tǒng)軟件。如果編寫操作系統(tǒng)、編譯系統(tǒng)等系統(tǒng)軟件時,可選用匯編語言、C語言、Pascal語言和Ada語言。

  (5)人工智能。如果要完成知識庫系統(tǒng)、專家系統(tǒng)決策支持系統(tǒng)、推理工程、語言識別、模式識別等人工智能領域內的系統(tǒng),應選擇Prolog、Lisp語言。

  2、軟件開發(fā)的方法

  有時編程語言的選擇依賴于開發(fā)的方法,如果要用快速原型模型來開發(fā),要求能快速實現原型,因此宜采用4GL。如果是面向對象方法,宜采用面向對象的語言編程。

  3、軟件執(zhí)行的環(huán)境

  良好的編程環(huán)境不但能有效提高軟件生產率,同時能減少錯誤,有效提高軟件質量

  4、算法和數據結構的復雜性

  科學計算、實時處理和人工智能領域中的問題算法較復雜,而數據處理、數據庫應用、系統(tǒng)軟件領域的問題,數據結構.比較復雜,因此選擇語言時可考慮是否有完成復雜算法的能力,或者有構造復雜數據結構的能力。

  5、軟件開發(fā)人員的知識

  編寫語言的選擇與軟件開發(fā)人員的知識水平及心理因素有關,開發(fā)人員應仔細地分析軟件項目的類型,敢于學習新知識,掌握新技術。

評論  |   0條評論