複製鏈接
請複製以下鏈接發送給好友

高級語言

鎖定
高級語言(High-level programming language)是一種獨立於機器,面向過程或對象的語言。高級語言是參照數學語言而設計的近似於日常會話的語言。例如,要將2個變量相加並賦值給第三個變量,用高級語言表達為var3=var1+var2 [1]  。高級語言相對低級語言有較高的可讀性,更易理解。由於早期計算機行業的發展主要在美國,因此一般的高級語言都是以英語為藍本。
中文名
高級語言
外文名
High-level programming language
所屬類別
程序設計語言
舉    例
BASIC、JAVA、C、C++、python
學    科
信息科學
分    類
通常按其基本類型、代系、實現方式、應用範圍等分類

高級語言簡介

計算機語言具有高級語言和低級語言之分。而高級語言又主要是相對於彙編語言而言的,它是較接近自然語言和數學公式的編程,基本脱離了機器的硬件系統,用人們更易理解的方式編寫程序。編寫的程序稱之為源程序 [2] 
高級語言並不是特指的某一種具體的語言,而是包括很多編程語言,如流行的java,c,c++,C#,pascalpythonlispprologFoxPro易語言,中文版的C語言等等,這些語言的語法、命令格式都不相同 [3] 
高級語言與計算機的硬件結構及指令系統無關,它有更強的表達能力,可方便地表示數據的運算和程序控制結構,能更好的描述各種算法,而且容易學習掌握。但高級語言編譯生成的程序代碼一般比用匯編程序語言設計的程序代碼要長,執行的速度也慢。所以彙編語言適合編寫一些對速度和代碼長度要求高的程序和直接控制硬件的程序。高級語言、彙編語言和機器語言都是用於編寫計算機程序的語言 [4] 
高級語言程序“看不見”機器的硬件結構,不能用於編寫直接訪問機器硬件資源的系統軟件或設備控制軟件。為此,一些高級語言提供了與彙編語言之間的調用接口。用匯編語言編寫的程序,可作為高級語言的一個外部過程或函數,利用堆棧來傳遞參數或參數的地址 [5] 

高級語言發展歷程

編程語言經歷了機器語言彙編語言等更新之後,人們發現了限制程序推廣的關鍵因素——程序的可移植性。需要設計一個能夠不依賴於計算機硬件,能夠在不同機器上運行的程序。這樣可以免去很多編程的重複過程,提高效率,同時這種語言又要接近於數學語言或人的自然語言。在計算機還很稀缺的50年代,誕生了第一個高級編程語言。當時計算機的造價不菲,但是每天的計算量有有限,如何有效的利用計算機有限的計算能力成為了當時人們面對的問題。同時,因為資源的稀缺,計算機的運行效率也成為了那個年代工程師追尋的目標。為了更高效的使用計算機,人們設計出了高級編程語言,來滿足人們對於高效簡的編程語言的追求。用高級編程語言編寫的程序需要經過翻譯,翻譯成機器所能識別的二進制數才能由計算機去執行。雖然,高級編程語言編寫的程序需要一些時間去翻譯代碼,從而降低了計算機的執行效率,但是實踐證明,高級編程語言為工程師帶來的便利遠遠大於降低的執行效率。 經過各軟件工程師和專家的不懈努力,1954年,第一個完全意義的高級編程語言FORTRAN問世了,他完全脱離了特定機器的侷限性,是第一個通用性的編程語言。從第一個編程語言問世到現今,共有幾百種高級編程語言出現,很多語言成為了編程語言發展道路上的里程碑,影響很大。 比如:BASIC、JAVA、C、C++、python等。 高級編程語言也從早期的控制信號變成了現在的有結構有格式的程序編寫工具,C++等語言的出現更是開啓了面向對象編程語言的新章。同時伴隨着軟件編寫效率的提高,軟件開發也逐漸變成了有規模、有產業的商業項目 [6] 

高級語言特點

因為明確的目標性以及理解容易,一個新手很容易去學習高級編程語言。同時高級編程語言因為發展的歷史,擁有很多函數庫,用户可以根據自身的需求在代碼中加入頭文件來調用這些函數來實現自己的功能,當然使用者也可以根據自己的喜好編寫函數來在後續的代碼中調用 [6] 
高級編程語言作為一種通用的編程語言,它的語言結構和計算機本身的硬件以及指令系統無關,它的可閲讀性更強,能夠方便的表達程序的功能,更好的描述使用的算法。同時,它更 容易被初學者所掌握,很容易學習。而且容易學習掌握。但是高級編程語言因為是一種編譯語言,所以他的運行速度比彙編程序要低,同時因為高級語言比較冗長,所以代碼的執行速度也要慢一些 [6] 
高級編程語言,作為用户層面的編程工具,用户並不需要去了解硬件的結構,而是去用邏輯的語言去實現想要的目標,但是因為高級編程語言的架構高於彙編,所以不能編寫直接訪問硬件資源的系統程序,因此,高級編程語言必須要調用匯編語言編寫的程序來訪問硬件地址 [6] 

高級語言分類

  1. 命令式語言。這種語言的語義基礎是模擬“數據存儲/數據操作”的圖靈機可計算模型,十分符合現代計算機體系結構的自然實現方式。其中產生操作的主要途徑是依賴語句或命令產生的副作用。現代流行的大多數語言都是這一類型,比如 FortranPascalCobolCC++BasicAdaJavaC# 等,各種腳本語言也被看作是此種類型 [7] 
  2. 函數式語言。這種語言的語義基礎是基於數學函數概念的值映射的λ算子可計算模型。這種語言非常適合於進行人工智能等工作的計算。典型的函數式語言如 LispHaskellMLScheme 、F#等 [7] 
  3. 邏輯式語言。這種語言的語義基礎是基於一組已知規則的形式邏輯系統。這種語言主要用在專家系統的實現中。最著名的邏輯式語言是 Prolog [7] 
  4. 面嚮對象語言。現代語言中的大多數都提供面向對象的支持,但有些語言是直接建立在面向對象基本模型上的,語言的語法形式的語義就是基本對象操作。主要的純面嚮對象語言是 Smalltalk [7] 

高級語言性能分析

高級語言接口分析

接口主要指高級語言與彙編語言之間的聯繫性Ada語言在應用的過程中可以訪問彙編語言,訪問情況的實現只需要程序功能,程序功能在使用的過程中破解所設定的環節,進行訪問工作。對C語言而言,將彙編語言作為整體看成一個獨立的部分,將獨立的部分加入C的程序中,具有通訊功能。對於Macros的應用,可以應用在彙編語言中,藉助編譯器完成各種工作。語言的性能並沒有改變,Java語言與彙編語言的 關係可以將其作為一個代碼,此代碼具有移植性,直接移植便可以進行操作,操作的過程方面並沒有過多複雜程序 [8] 

高級語言尋址分析

Ada尋址情況主要藉助的是SYSTEM實現,可以準確的尋址;C的尋址需要藉助指針實現,可以精確的實現尋址,對於存儲器尋址情況需要應用peek完成,Modula-2的尋址情況與 Ada所藉助的情況一致,可以吸納絕對的尋址 [8] 

高級語言位操作分析

對於不同語言具有不同的位情況,所表達的從句中可以明確指出Ada的位,會存在很多位的情況,將其組合,通過邏輯原理進行處理。C的主要功能是位操作,對於Modula-2主要藉助BIYSTE,應用這樣的方式可以準確進行位操作 [8] 

高級語言任務支持分析

不同的語言任務功能不一樣,對於Ada具有較多的任務, 其支持性強,可以實現多種任務同時工作的情況。C與Ada相 比不具有這樣的優勢,Modula-2與Ada相比並沒有其完善性,需要藉助機制實現。對於這樣的優勢是Ada,可以獨立的完成 [8] 

高級語言控制程序分析

系統的設定需要控制程序,對於高級語言會涵蓋一定的控制結構,像Ada中具有控制能力,對於其分支可以完全掌控其運行。C中並沒有完善的控制結構,主要是對分值方面使用靈活,並且簡單易操作,在使用的過程中應嚴格按照其規定操作,避免人為原因造成問題出現。Modula-2的控制系統只是控制分支,轉移需要應用FXIT,操作的過程中應嚴格審查操作環節,避免其操作的過程中造成出現問題,操作時應兢兢業業,因為這方面的人為操作易引起問題的形成 [8] 

高級語言高級語言的工作方式

高級語言設計的程序必須經過“翻譯”以後才能被機器執行。“翻譯”的方法有兩種,一種是解釋,一種是編譯。解釋是把源程序翻譯一句,執行一句的過程,而編譯是源程序翻譯成機器指令形式的目標程序的過程,再用鏈接程序把目標程序鏈接成可執行程序後才能執行 [9] 
解釋翻譯過程。對高級語言程序進行解釋並執行的程序稱為解釋程序(軟件)。它的功能是讀入源程序,按源程序動態邏輯順序進行逐句分析、翻譯,解釋一句執行一句,不產生任何中間代碼,最終得到程序的執行結果 [9] 
參考資料
  • 1.    劉嵐編,單片計算機基礎及應用,武漢理工大學出版社,2016.03,第71頁
  • 2.    張力,韓力羣,何晨光編寫,陸地機器人,中國民主法制出版社,2017.03,第112頁
  • 3.    劉嵐,尹勇,撒繼銘,周嶸,方浩,潘愛民編著,單片計算機基礎及應用,武漢理工大學出版社,2016.03,第71頁
  • 4.    張令通,徐陶禕主編,微機原理與接口技術,華中科技大學出版社,2014.01,第98頁
  • 5.    唐龍,郭鑫主編;宋元甫,陳豔秋,舒傑,鄭萍,田崇瑞,耿姝,楊迎副主編;張瓏主審,JAVA語言程序設計=THE JAVA PROGRAMMING LANGUAGE,哈爾濱工業大學出版社,2016.07,第2頁
  • 6.    沈大智.彙編語言和高級編程語言區別與聯繫[J].中文信息,2017,(6):2-3. DOI:10.3969/j.issn.1003-9082.2017.06.002.
  • 7.    朱揚清,羅平主編;霍穎瑜,左軍副主編,計算機技術及創新案例,中國鐵道出版社,2015.09,第60頁
  • 8.    魯皓.嵌入式系統高級編程語言技術分析[J].數字化用户,2019,25(7):41.
  • 9.    袁磊,耿煜,黃霞主編,C語言程序設計,華中師範大學出版社,2016.12,第6頁