Ⅰ 計算機高級程序語言的兩種工作方式(解釋方式和編譯方式)的區別是什麼
高級語言所編制的程序不能直接被計算機識別,必須經過轉換才能被執行,按轉換方式可
將它們分為兩類:
1.解釋類
執行方式類似於我們日常生活中的「同聲翻譯」,應用程序源代碼一邊由相應語言的解釋器「翻譯」成目標代碼(機器語言),一邊執行,因此效率比較低,而且不能生成可獨立執行的可執行文件,應用程序不能脫離其解釋器,但這種方式比較靈活,可以動態地調整、修改應用程序,典型的解釋型的高級語言有BASIC。
2.編譯類
編譯是指在應用源程序執行之前,就將程序源代碼「翻譯」成目標代碼(機器語言),因此其目標程序可以脫離其語言環境獨立執行,使用比較方便、效率較高。但應用程序一旦需要修改,必須先修改源代碼,再重新編譯生成新的目標文件(*.OBJ)才能執行,只有目標文件而沒有源代碼,修改很不方便。現在大多數的編程語言都是編譯型的,例如Visual C++、Delphi等。
Ⅱ 計算機語言的種類
機器語言(二進制代碼)
匯編語言(面向機器的程序設計語言)
高級語言(按轉換方式可分兩類:
1、編譯型語言; 2、解釋型語言)
||按照客觀系統的描述可分兩類:
1、面向過程語言;
2、面向對象語言 ||
按照編程范型可分四類:
1、命令式語言;2、函數式語言;3、邏輯式語言;4、面向對象語言)
三種語言的優缺點
機器語言:可讀性、可移植性差,編程繁雜。直接執行,速度快,資源佔用少。匯編語言:不同的處理器有不同的匯編語言語法和編譯器,編譯的程序無法在不同的處理器上執行,缺乏可移植性,難於從匯編語言代碼上理解程序設計意圖,可維護性差,即使是完成簡單的工作也需要大量的匯編語言代碼,很容易產生bug,難於調試,使用匯編語言必須對某種處理器非常了解,而且只能針對特定的體系結構和處理器進行優化,開發效率很低,周期長且單調。能夠保持機器語言的一致性,直接、簡捷,並能像機器指令一樣訪問、控制計算機的各種硬體設備,如磁碟、存儲器、CPU、I/O埠等。使用匯編語言,可以訪問所有能夠被訪問的軟、硬體資源,目標代碼簡短,佔用內存少,執行速度快。高級語言:運行速度基本上比直接用匯編寫的慢,速度和程序大小與編譯軟體有關。高級語言接近演算法語言,易學、易掌握,級語言為程序員提供了結構化程序設計的環境和工具,使得設計出來的程序可讀性好,可維護性強,可靠性高;高級語言遠離機器語言,與具體的計算機硬體關系不大,可移植性好,重用率高;由於把繁雜瑣碎的事務交給了編譯程序去做,所以自動化程度高,開發周期短,且程序員得到解脫,可以集中時間和精力去從事對於他們來說更為重要的創造性勞動,以提高程序的質量。
高級語言的分類
按轉換方式可分為兩類:1、編譯型語言;2、解釋型語言
編譯型語言:編譯性語言寫的程序在被執行之前,需要一個專門的編譯過程,把程序編譯成為機器語言的文件,比如exe文件,以後要運行的話就不用重新翻譯了,直接使用編譯的結果就行了(exe文件),因為翻譯只做了一次,運行時不需要翻譯,所以編譯型語言的程序執行效率高。解釋型語言:解釋性語言的程序不需要編譯,在運行程序的時候才翻譯,每個語句都是執行的時候才翻譯。這樣解釋性語言每執行一次就需要逐行翻譯一次,效率比較低。 現代解釋性語言通常把源程序編譯成中間代碼,然後用解釋器把中間代碼一條條翻譯成目標機器代碼,一條條執行。 關於腳本語言: 腳本語言是一種解釋性的語言,腳本語言是為了縮短傳統的編寫-編譯-鏈接-運行(edit-compile-link-run)過程而創建的計算機編程語言。腳本語言一般都 有相應的腳本引擎來解釋執行。 他們一般需要解釋器才能運行。一個腳本通常是解釋運行而非編譯。腳本語言通常都有簡單、易學、易用的特性,目的就是希望能讓程序員快速完成程序的編寫工作。而宏語言則可視為腳本語言的分支,兩者也有實質上的相同之處。腳本語言一般都是以文本形式存在,類似於一種命令。
解釋性語言:java、Java、Perl、Python、Ruby、MATLAB 等。 編譯性語言: C/C++、Pascal/Object Pascal(Delphi) 腳本語言:Python、Java,ASP,PHP,Perl等
解釋性語言:Java、Java、Perl、Python、Ruby、MATLAB 等。 編譯性語言: C/C++、Pascal/Object Pascal(Delphi) 腳本語言:Python、Java,ASP,PHP,Perl等
按照客觀系統的描述可分為兩類:1.面向過程語言; 2.面向對象語言
面向過程語言:面向過程語言是以過程或函數為基礎的,這種語言對底層硬體,內存等操作比較方便,但是寫代碼和調試維護等會很麻煩。例如:c語言面向對象語言:面向對象語言(Object-Oriented Language)是一類以對象作為基本程序結構單位的程序設計語言,指用於描述的設計是以對象為核心,而對象是程序運行時刻的基本成分。語言中提供了類、繼承等成分。 面向對象語言的發展有兩個方向:一種是純面向對象語言,如Smalltalk、EIFFEL等;另一種是混合型面向對象語言,即在過程式語言及其它語言中加入類、繼承等成分,如C++、Objective-C等
按照編程范型可分為:1.命令式語言; 2.函數式語言; 3.邏輯式語言; 4.面向對象語言
命令式語言: 命令式程序設計語言是基於動作的語言,以馮諾依曼計算機體系結構為背景。機器語言及匯編語言是最早的命令式語言。在這種語言中,計算機被看做是動作的序列,程序就是用語言提供的操作命令書寫的一個操作序列。用命令式程序設計語言編寫程序,就是描述解題過程中每一步的過程,程序的運行過程就是問題的求解過程,因此也稱為過程式語言。Fortran、ALGOL、COBOL、C、Ada、Pascal等都是命令式程序設計語言。函數式語言: 函數式編程是種編程典範,它將電腦運算視為函數的計算。函數編程語言最重要的基礎是 λ 演算(lambda calculus)。而且λ演算的函數可以接受函數當作輸入(參數)和輸出(返回值)。和指令式編程相比,函數式編程強調函數的計算比指令的執行重要。和過程化編程相比,函數式編程里,函數的計算可隨時調用。這種語言的語義基礎是基於數學函數概念的值映射的λ運算元可計算模型。這種語言非常適合於進行人工智慧等工作的計算。典型的函數式語言如 Lisp、Haskell、ML、Scheme 、F#等。邏輯式語言: 這種語言的語義基礎是基於一組已知規則的形式邏輯系統。這種語言主要用在專家系統的實現中。最著名的邏輯式語言是 Prolog。面向對象語言: 現代語言中的大多數都提供面向對象的支持,但有些語言是直接建立在面向對象基本模型上的,語言的語法形式的語義就是基本對象操作。主要的純面向對象語言是 Smalltalk。
Ⅲ 編譯型語言有哪些呢
編譯型語言有C、C++、Objective-C、Swift、Kotlin等高級語言。需要將源代碼編譯成機器碼,再由機器運行機器碼。只需編譯一次,運行速度快,執行效率高。
編譯型語言和解釋型語言區別在於:
編譯型語言,通常都會對源代碼進行編譯,生成可以執行的二進制代碼,執行的是編譯後的結果。
解釋型語言,通常不用對源代碼進行編譯,一般是通過解釋器載入腳本後運行。由於每個語句都是執行的時候才進行解釋翻譯,這樣解釋性語言每次執行就要翻譯一次,效率相對要低。至於難度,個人感覺java相對要更復雜些。
Ⅳ 解釋型語言和編譯型語言
編譯型是使用編譯器編譯後生成計算機硬體可直接執行的指令,解釋型是在運行時才由解釋器逐語句去執行。編譯型代表:C&C++,C#,Java,解釋型代表:html,javascript。區別有很多。
1、編譯型語言的源代碼有錯誤編譯不通過,無法生成可執行代碼,更無法執行程序;解釋型語言只有執行時才會判斷是否出錯,即使一句出錯,也可以繼續執行下一句。
2、編譯型語言都為強類型,即必須說明數據的類型,如inta;解釋型語言多為弱類型,如js中vara,a可以為字元串也可以為整形。
3、編譯型語言執行效率上大大優於解釋型,主要因為編譯器在編譯過程中會根據不同平台自動優化目標代碼,且特點為1次編譯,N次運行,另外強類型的程序安全性高;解釋型語言無上述過程,逐語句翻譯造成執行效率低下,每次執行都會重復解釋一遍,並且安全性低。
4、編譯型程序適合對通用性,重復性,高效性有要求的系統,如開發操作系統;相比解釋型語言更具靈活性,如開發網站前台頁。
更多關於解釋型語言和編譯型語言,進入:https://www.abcgonglue.com/ask/d95b531616100786.html?zd查看更多內容
Ⅳ Java 是編譯型語言還是解釋型語言
高級計算機語言主要有兩種類型:編譯和解釋。
這是一個跨平台的java,並可在任何地方運行:跨平台的java是基於JVM。Java虛擬機是由軟體或硬體模擬的計算機程序,java,計算機所有的.class文件是運行在JVM,即JVM *。只有Java類文件,以適應不同的操作系統,讓操作系統的安裝按照不同只要JVM的類型,然後程序無論哪個操作系統的JVM可以糾正窗口/其他...... JVM的Unix / JVM的實現因此,如果沒有JVM,就不能跨平台。
Ⅵ c語言是解釋型語言嗎
編程語言分為兩大類:1-編譯型語言;2-解釋型語言。之前我們講解過編譯型語言。現在就來講講解釋型語言
同學們可以繼續與翻譯進行類別,來理解「解釋型語言」。之前說過,編譯型語言是雇一個翻譯,將你寫的中文信全篇翻譯成英文,然後交給美國總統閱讀。而解釋型語言則不同,更像是「同聲傳譯」。
也就是說,解釋型語言使用一個翻譯站在你身邊,你寫出一句中文,它就直接翻譯成英文給對方閱讀。實際上,這個「翻譯」是一種虛擬機。所謂虛擬機,也是一種程序,它幫你隨時將編寫的源代碼翻譯成計算機可以理解的機器語言,讓計算機執行命令。而不需要產生中間的機器碼文件。比如,「BASIC」語言就是一種解釋型語言。
比如,你使用BASIC語言,想在屏幕上顯示文本「Hello」。那麼你可以先編寫源代碼文件,比如叫「hello.bas」,然後你可以直接將hello.bas文件送入虛擬機程序。然後虛擬機會直接幫你運行hello.bas(直接逐行解釋你的源代碼文件)。
解釋型語言最大的特點就是不創建中間文件。
解釋型語言的優點
對於不同的系統適應性較好,同樣的源代碼,可以直接運行在不同的系統(當然,前提是在不同系統上安裝好相應的虛擬機)。
解釋型語言的缺點
逐行解釋會導致程序運行速度不如編譯型語言快。可以想像下,你講中文時,說一句中文翻譯翻譯一句(解釋型語言)的速度,顯然比先把演講稿翻譯成全英文稿(編譯型語言)要慢很多。
解釋型語言舉例
屬於解釋型語言的有如下幾種:
Perl
JavaScript
VBScript
AppleScript
Ⅶ 軟體編程中幾種語言之間的關系
編譯型語言和解釋型語言。
動態結構語言和靜態結構語言。
動態類型語言和靜態類型語言。
強類型語言和弱類型語言。
1、編譯型語言和解釋型語言
。
計算機不能直接的理解高級語言,只能直接理解機器語言,所以必須要把高級語言翻譯成機器語言,計算機才能執行高級語言的編寫的程序。翻譯的方式有兩種,一個是編譯,一個是解釋。兩種方式只是翻譯的時間不同。
編譯型語言:
需通過編譯器(compiler)將源代碼編譯成機器碼,之後才能執行的語言。一般需經過編譯(compile)、鏈接(linker)這兩個步驟。編譯是把源代碼編譯成機器碼,鏈接是把各個模塊的機器碼和依賴庫串連起來生成可執行文件。編譯和執行是分開的,但是不能跨平台。