-
程序設計語言
鎖定
程序設計語言是用於書寫計算機程序的語言。語言的基礎是一組記號和一組規則。根據規則由記號構成的記號串的總體就是語言。在程序設計語言中,這些記號串就是程序。程序設計語言有3個方面的因素,即語法、語義和語用。語法表示程序的結構或形式,亦即表示構成語言的各個記號之間的組合規律,但不涉及這些記號的特定含義,也不涉及使用者。語義表示程序的含義,亦即表示按照各種方法所表示的各個記號的特定含義,但不涉及使用者。
- 中文名
- 程序設計語言
- 外文名
- PDL/Programming Language
程序設計語言歷史
高級程序設計語言(也稱高級語言)的出現使得計算機程序設計語言不再過度地倚賴某種特定的機器或環境。這是因為高級語言在不同的平台上會被編譯成不同的機器語言,而不是直接被機器執行。最早出現的編程語言之一FORTRAN的一個主要目標,就是實現平台獨立。
程序設計語言釋義
程序設計語言(24張)
如果所使用的翻譯的機制是將所要翻譯的程序代碼作為一個整體翻譯,並之後運行內部格式,那麼這個翻譯過程就稱為編譯。因此,一個編譯器是一個將可閲讀的程序文本(叫做源代碼)作為輸入的數據,然後輸出可執行文件(object code)。所輸出的可執行文件可以是機器語言,由計算機的中央處理器直接運行,或者是某種模擬器的二進制代碼。
程序設計語言成分
語言的種類千差萬別。但是,一般説來,基本成分不外4種。
- 數據成分。用以描述程序中所涉及的數據。
- 運算成分。用以描述程序中所包含的運算。
- 控制成分。用以表達程序中的控制構造。
- 傳輸成分。用以表達程序中數據的傳輸。
程序設計語言程序設計語言的特性
程序設計語言具有心理工程及技術等特性。
程序設計語言分類
自20世紀60 年代以來,世界上公佈的程序設計語言已有上千種之多,但是隻有很小一部分得到了廣泛的應用。從發展歷程來看,程序設計語言可以分為 4 代。
程序設計語言第一代機器語言
機器語言是由二進制 0、1 代碼指令構成,不同的 CPU 具有不同的指令系統。機器語言程序難編寫、難修改、難維護,需要用户直接對存儲空間進行分配,編程效率極低,程序代碼直觀性、兼容性差,並且很容易出現錯誤
[3]
,這種語言已經被漸漸淘汰了。
程序設計語言第二代彙編語言
彙編語言指令是機器指令的符號化,與機器指令存在着直接的對應關係,所以彙編語言同樣存在着難學難用、容易出錯、維護困難等缺點。但是彙編語言也有自己的優點:佔用內存空間少
[3]
,可直接訪問系統接口,彙編程序翻譯成的機器語言程序的效率高。 從軟件工程角度來看,只有在高級語言不能滿足設計要求,或不具備支持某種特定功能的技術性能(如特殊的輸入輸出)時,彙編語言才被使用。
程序設計語言第三代高級語言
高級語言是面向用户的、基本上獨立於計算機種類和結構的語言。其最大的優點是:形式上接近於算術語言和自然語言,概念上接近於人們通常使用的概念。高級語言的一個命令可以代替幾條、幾十條甚至幾百條彙編語言的指令。因此,高級語言易學易用,通用性強,應用廣泛。高級語言種類繁多,可以從應用特點和對客觀系統的描述兩個方面對其進一步分類。
一、從應用角度分類
(1) 基礎語言
基礎語言也稱通用語言。它歷史悠久,流傳很廣,有大量的已開發的軟件庫,擁有眾多的用户, 為人們所熟悉和接受。 屬於這類語言的有 FORTRAN、COBOL、BASIC、ALGOL等。FORTRAN 語言是國際上廣為流行、也是使用得最早的一種高級語言,從 20 世紀90 年代起,在工程與科學計算中一直佔有重要地位,備受科技人員的歡迎。BASIC 語言是在 20 世紀 60 年代初為適應分時系統而研製的一種交互式語言,可用於一般的數值計算與事務處理。BASIC 語言結構簡單,易學易用,並且具有交互能力,成為許多初學者學習程序設計的入門語言。
(2) 結構化語言
20 世紀 70 年代以來,結構化程序設計和軟件工程的思想日益為人們所接受和欣賞。在它們的影響下,先後出現了一些很有影響的結構化語言,這些結構化語言直接支持結構化的控制結構,具有很強的過程結構和數據結構能力。PASCAL、C、Ada 語言就是它們的突出代表。
PASCAL 語言是第一個系統地體現結構化程序設計概念的現代高級語言,軟件開發的最初目標是把它作為結構化程序設計的教學工具。由於它模塊清晰、控制結構完備、有豐富的數據類型和數據結構、語言表達能力強、移植容易,不僅被國內外許多高等院校定為教學語言,而且在科學計算、數據處理及系統軟件開發中都有較廣泛的應用。
C 語言功能豐富,表達能力強,有豐富的運算符和數據類型,使用靈活方便,應用面廣,移植能力強,編譯質量高,目標程序效率高,具有高級語言的優點。同時,C 語言還具有低級語言的許多特點,如允許直接訪問物理地址,能進行位操作,能實現彙編語言的大部分功能,可以直接對硬件進行操作等。用 C 語言編譯程序產生的目標程序,其質量可以與彙編語言產生的目標程序相媲美,具有“可移植的彙編語言”的美稱,成為編寫應用軟件、操作系統和編譯程序的重要語言之一。
(3) 專用語言
是為某種特殊應用而專門設計的語言,通常具有特殊的語法形式。一般來説,這種語言的應用範圍狹窄,移植性和可維護性不如結構化程序設計語言。隨着時間的發展,被使用的專業語言已有數百種,應用比較廣泛的有 APL 語言、Forth 語言、LISP 語言。
二、從客觀系統的描述分類
(1) 面向過程語言
以“數據結構+算法”程序設計範式構成的程序設計語言,稱為面向過程語言。前面介紹的程序設計語言大多為面向過程語言。
(2) 面嚮對象語言
以“對象+消息”程序設計範式構成的程序設計語言,稱為面嚮對象語言。比較流行的面嚮對象語言有 Delphi、Visual Basic、Java、C++等。
Visual Basic 語言簡稱 VB,是為開發應用程序而提供的開發環境與工具。它具有很好的圖形用户界面,採用面向對象和事件驅動的新機制,把過程化和結構化編程集合在一起。它在應用程序開發中的圖形化構思,無需編寫任何程序,就可以方便地創建應用程序界面,且與 Windows 界面非常相似,甚至是一致的。
Java 語言是一種面向對象的、不依賴於特定平台的程序設計語言,簡單、可靠、可編譯、可擴展、多線程、結構中立、類型顯示説明、動態存儲管理、易於理解,是一種理想的、用於開發 Internet 應用軟件的程序設計語言。
程序設計語言第四代非過程化語言
4GL 是非過程化語言,編碼時只需説明“做什麼”,不需描述算法細節。
數據庫查詢和應用程序生成器是 4GL 的兩個典型應用。用户可以用數據庫查詢語言(SQL)對數據庫中的信息進行復雜的操作。 用户只需將要查找的內容在什麼地方、 據什麼 根條件進行查找等信息告訴 SQL,SQL 將自動完成查找過程。應用程序生成器則是根據用户的需求“自動生成”滿足需求的高級語言程序。真正的第四代程序設計語言應該説還沒有出現。所謂的第四代語言大多是指基於某種語言環境上具有 4GL 特徵的軟件工具產品, System Z、如PowerBuilder、FOCUS 等。第四代程序設計語言是面向應用,為最終用户設計的一類程序設計語言。它具有縮短應用開發過程、降低維護代價、最大限度地減少調試過程中出現的問題以及對用户友好等優點。
程序設計語言主要語言
- APT( Automatically Pro-grammed Tools)——自動數控程序。第一個專用語言,用於數控機牀加工,1956。
- FLOW-MATIC。第一個適用於商用數據處理的語言,其語法與英語語法類似,1956。
- IPL-V(Information Processing Language V)——信息處理語言。第一個表處理語言,可看成是一種適用於表處理的假想計算機上的彙編語言,1958。
- COMIT(COmpiler Massachusetts Institute foTechnology) ——馬薩諸塞州理工學院編譯程序。第一個現實的串處理和模式匹配語言,1957。
- COBOL(COmmon Business Oriented Language)——面向商業的通用語言。使用最廣泛的商用語言,它是適用於數據處理的高級程序設計語言,1960。
- GPSS(General-purpose Systems Simulator)——通用系統模擬語言 。第一個使模擬成為實用工具的語言 ,1961。
- JOSS(Johnniac Open-Shop System ——。第一個交互式語言,它有很多方言,曾使分時成為實用,1964。
- FORMAC(FORmula MAnipulation Compiler)——公式翻譯程序設計語言公式處理編譯程序。第一個廣泛用於需要形式代數處理的數學問題領域內的語言,1964。
- SIMULA (SIMUlation LAnguage)—— 模擬語言 。主要用於模擬的語言,是ALGOL60的擴充,1966。SIMULA67是1967年SIMULA的改進。其中引進的“類”概念,是現代程序設計語言中“模塊”概念的先聲。
- C結構化程序設計語言的經典,它能完成你想要的一切。
- C++ 構建大型軟件,要求速度與性能,可以使用它。
- JAVA SUN公司開發的一種基於JVM虛擬機的面向對象的語言,被廣泛應用於移動設備。
程序設計語言程序設計語言的選擇
程序設計語言特點不同,適用領域也不同,以下從不同角度介紹選擇的方法。
1、項目的應用領域
(1)科學工程計算。需要大量的標準庫函數,以便處理複雜的數值計算,可供選用的語言有FORTRAN語言、C語言等。
(3)實時處理。實時處理軟件一般對性能的要求很高,可選用的語言有彙編語言、Ada語言等。
2、軟件開發的方法
3、軟件執行的環境
4、算法和數據結構的複雜性
科學計算、實時處理和人工智能領域中的問題算法較複雜,而數據處理、數據庫應用、系統軟件領域的問題,數據結構.比較複雜,因此選擇語言時可考慮是否有完成複雜算法的能力,或者有構造複雜數據結構的能力。
5、軟件開發人員的知識
程序設計語言數據模型
現代計算機內部的數據都只以二元方式儲存,即開-關模式(on-off)。現實世界中代表信息的各種數據,例如名字、銀行賬號、度量以及同樣低端的二元數據,都經由程序設計語言整理,成為高端的概念。
一個程序中專門處理數據的那個系統被稱為程序語言的型態系統(type system);對型態系統的研究和設計被稱為型態理論(type theory)。語言可以被分為靜態型態系統(statically typed systems),例如C++和Java,和動態型態系統(dynamically typed systems),例如Lisp,JavaScript,Tcl和Prolog。前者可被進一步分為包含宣告型態(manifest type)的語言,即每一個變量和函數的型態都清楚地宣告,或type-inferred語言(例如MUMPS,ML)。
大多數語言還能夠在內置的型態基礎上組合出複雜的數據結構型態(使用數組,列表,堆棧,文件等等)。面嚮對象語言(Object Oriented Language,又譯作“物件導向語言”)允許程序員定義新的數據型態,即“對象”或“物件”(objects),以及運行於該對象的函數(functions)和方法(methods)。
除了何時以及如何確定表達式和型態的聯繫,另外一個重要的問題就是語言到底定義了哪些型態,以及允許哪些型態作為表達式的值。諸如C編程語言之類的低端語言允許程序命名內存位置、內存區域以及編譯時的常量;ANSI C甚至允許表達式返回結構值(struct values)。功能性的語言一般允許變量直接使用運行時計算出的值,而不是指出該值可能儲存的內存地址。
程序設計語言發展趨勢
程序設計語言是軟件的重要方面。它的發展趨勢是模塊化、簡明性和形式化。
- 模塊化。不僅語言具有模塊成分,程序由模塊組成,而且語言本身的結構也是模塊化的。
- 簡明性。涉及的基本概念不多,成分簡單,結構清晰,易學易用。
- 形式化。發展合適的形式體系,以描述語言的語法、語義、語用。