登錄

程序設(shè)計語言

百科 > 計算機(jī) > 程序設(shè)計語言

1.什么是程序設(shè)計語言[1]

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

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

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

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

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

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

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

  隨著計算機(jī)技術(shù)的發(fā)展和應(yīng)用的深入,在20世紀(jì)70年代,由結(jié)構(gòu)化程序設(shè)計的思想孵化出了兩種結(jié)構(gòu)化程序設(shè)計語言:Pascal和C。其中Pascal語言強(qiáng)調(diào)可讀性,使其至今仍為學(xué)習(xí)算法和數(shù)據(jù)結(jié)構(gòu)等軟件基礎(chǔ)知識的首選教學(xué)語言;而C語言強(qiáng)調(diào)語言的簡潔和高效,使之成為幾十年中主流的軟件開發(fā)語言。

  隨著面向?qū)ο蟪绦蛟O(shè)計思想的普及,20世紀(jì)80年代,由AT&T貝爾實驗室在C語言的基礎(chǔ)上設(shè)計并實現(xiàn)的c++語言成為眾多面向?qū)ο笳Z言中的代表。隨后,c++和其他高級語言如BAsIC、Pascal等,結(jié)合可視化的界面編程技術(shù)、面向?qū)ο笏枷爰?a href="/wiki/%E6%95%B0%E6%8D%AE%E5%BA%93%E6%8A%80%E6%9C%AF" title="數(shù)據(jù)庫技術(shù)">數(shù)據(jù)庫技術(shù),產(chǎn)生了所謂的第四代語言——面向?qū)ο笳Z言,如Ⅵsual Basic、Delphi、Visual c++、c++Builder等。

3.程序設(shè)計語言的分類[3]

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

  (1)面向機(jī)器的語言(機(jī)器語言、匯編語言):依賴于結(jié)構(gòu),其指令系統(tǒng)隨機(jī)器而異、生產(chǎn)效率低、容易出錯、難以維護(hù)。

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

  從應(yīng)用特點可做如下分類:

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

  (2)結(jié)構(gòu)化語言:具有為某種特殊應(yīng)用而設(shè)計的、獨特的、很強(qiáng)的過程能力和數(shù)據(jù)結(jié)構(gòu)能力的特點,如PL/l,Pascal,C,Ada等。

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

  從語言的內(nèi)在特點可做如下分類:

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

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

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

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

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

4.程序設(shè)計語言的特性[3]

  程序設(shè)計語言具有心理工程及技術(shù)等特性。

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

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

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

5.程序設(shè)計語言的選擇[3]

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

  1、項目的應(yīng)用領(lǐng)域

  (1)科學(xué)工程計算。需要大量的標(biāo)準(zhǔn)庫函數(shù),以便處理復(fù)雜的數(shù)值計算,可供選用的語言有FORTRAN語言、C語言等。

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

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

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

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

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

  有時編程語言的選擇依賴于開發(fā)的方法,如果要用快速原型模型來開發(fā),要求能快速實現(xiàn)原型,因此宜采用4GL。如果是軟件生產(chǎn)率,同時能減少錯誤,有效提高軟件質(zhì)量。

  4、算法和數(shù)據(jù)結(jié)構(gòu)的復(fù)雜性

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

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

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

評論  |   0條評論