⑴ 解釋型語言和編譯型語言
編譯型是使用編譯器編譯後生成計算機硬體可直接執行的指令,解釋型是在運行時才由解釋器逐語句去執行。編譯型代表:C&C++,C#,java,解釋型代表:html,javascript。區別有很多。
1、編譯型語言的源代碼有錯誤編譯不通過,無法生成可執行代碼,更無法執行程序;解釋型語言只有執行時才會判斷是否出錯,即使一句出錯,也可以繼續執行下一句。
2、編譯型語言都為強類型,即必須說明數據的類型,如inta;解釋型語言多為弱類型,如js中vara,a可以為字元串也可以為整形。
3、編譯型語言執行效率上大大優於解釋型,主要因為編譯器在編譯過程中會根據不同平台自動優化目標代碼,且特點為1次編譯,N次運行,另外強類型的程序安全性高;解釋型語言無上述過程,逐語句翻譯造成執行效率低下,每次執行都會重復解釋一遍,並且安全性低。
4、編譯型程序適合對通用性,重復性,高效性有要求的系統,如開發操作系統;相比解釋型語言更具靈活性,如開發網站前台頁。
更多關於解釋型語言和編譯型語言,進入:https://www.abcgonglue.com/ask/d95b531616100786.html?zd查看更多內容
⑵ 編譯型語言和解釋型語言的區別是什麼
編譯型語言和解釋型語言的區別是翻譯的時間點不同。
編譯型語言:編譯型語言在執行之前要先經過編譯過程,編譯成為一個可執行的機器語言的文件,比如exe。
因為翻譯只做一遍,以後都不需要翻譯,所以執行效率高。
解釋型語言:解釋性語言編寫的程序不進行預先編譯,以文本方式存儲程序代碼。
執行時才翻譯執行程序每執行一次就要翻譯一遍。
編譯型語言和解釋型語言的詳細介紹:
對於編譯型語言,開發完成以後需要將所有的源代碼都轉換成可執行程序,比如Windows下的.exe文件,可執行程序裡麵包含的就是機器碼。只要我們擁有可執行程序,就可以隨時運行,不用再重新編譯了,也就是「一次編譯,無限次運行」。
在運行的時候,我們只需要編譯生成的可執行程序,不再需要源代碼和編譯器了,所以說編譯型語言可以脫離開發環境運行。
編譯型語言一般是不能跨平台的,也就是不能在不同的操作系統之間隨意切換。
對於解釋型語言,每次執行程序都需要一邊轉換一邊執行,用到哪些源代碼就將哪些源代碼轉換成機器碼,用不到的不進行任何處理。
每次執行程序時可能使用不同的功能,這個時候需要轉換的源代碼也不一樣。
因為每次執行程序都需要重新轉換源代碼,所以解釋型語言的執行效率天生就低於編譯型語言,甚至存在數量級的差距。
計算機的一些底層功能,或者關鍵演算法,一般都使用C/C++實現,只有在應用層面(比如網站開發、批處理、小工具等)才會使用解釋型語言。
⑶ 什麼是編譯性語言、解釋性語言和腳本語言
編譯型語言:
編譯是指在應用源程序執行之前,就將程序源代碼「翻譯」成目標代碼(機器語言),因此其目標程序可以脫離其語言環境獨立執行,使用比較方便、效率 較高。但應用程序一旦需要修改,必須先修改源代碼,再重新編譯生成新的目標文件(* .OBJ)才能執行,只有目標文件而沒有源代碼,修改很不方便。現在大多數的編程語言都是編譯型的。編譯程序將源程序翻譯成目標程序後保存在另一個文件中,該目標程序可脫離編譯程序直接在計算機上多次運行。大多數軟體產品都是以目標程序形式發行給用戶的,不僅便於直接運行,同時又使他人難於盜用其中的技術C、C++、Fortran、Visual Foxpro、Pascal、Delphi、Ada都是編譯實現的。
解釋型語言:
解釋型語言的實現中,翻譯器並不產生目標機器代碼,而是產生易於執行的中間代碼,這種中間代碼與機器代碼是不同的,中間代碼的解釋是由軟體支持的,不能直接使用硬體,軟體解釋器通常會導致執行效率較低。用解釋型語言編寫的程序是由另一個可以理解中間代碼的解釋程序執行的。與編譯程序不同的是,解釋程序的任務是逐一將源程序的語句解釋成可執行的機器指令,不需要將源程序翻譯成目標代碼後再執行。釋程序的優點是當語句出現語法錯誤時,可以立即引起程序員注意,而程序員在程序開發期間就能進行校正。對於解釋型Basic語言,需要一個專門的解釋器解釋執行 Basic程序,每條語言只有在執行才被翻譯。這種解釋型語言每執行一次就翻譯一次,因而效率低下。一般地,動態語言都是解釋型的,如Tcl、Perl、Ruby、VBScript、 JavaScript等。
腳本語言又被稱為擴建的語言,或者動態語言,是一種編程語言,用來控制軟體應用程序,腳本通常以文本(如ASCII)保存,只在被調用時進行解釋或編譯。
⑷ 哪位編程大蝦解釋一下什麼叫「解釋型語言」和「編譯型語言」
解釋性語言,就是有一個解釋器,讀取一條命令,進行語法分析,然後運行,然後讀取下一行,再運行
編譯語言,就是把整個代碼編譯成更底層的代碼,進行執行
如果你足夠了解語言,你會發現這兩個之間的界限非常模糊,所以說實話,很難講清楚。他們之間的區分並不是明確的可以定義的那種區別,而是更多的體現在實際使用中。
比如c語言,是一種編譯語言,c語言編譯器把c代碼編譯成匯編指令,然後機器執行
而javascript作為一門解釋性語言,由瀏覽器一句句來執行,中間不存在一個瀏覽器把js代碼編譯成更底層的代碼的過程
編譯語言往往做大量的靜態語法檢查,比如保證你用到的變數是定義過的。解釋性語言則比較靈活,隨便你寫,但是錯誤往往出現在運行時,不容易發現
⑸ 什麼是編譯型語言
編程語言分為編譯型和解釋型語言。編譯語言是在程序執行完進行編譯得到可執行文件的這樣一種語言,解釋性語言不需要編譯,用專門的解釋器進行解釋。
⑹ 請簡述解釋性編程語言和編譯性編程語言的區別
對於語言本身來說,各種編程語言本質沒什麼不同。所謂的「解釋性」和「編譯」指的是執行機制上的不同。
解釋性語言是指它常用的執行機制是使用一個「解釋器」來執行,解釋器對於程序是一句一句「翻譯」成機器語言來執行,例如shell腳本語言。
編譯型語言是指它常用的執行機制是使用一個「編譯器」來編譯成機器語言,然後你就可以直接運行(執行)這個編譯成的「可執行文件」。例如C語言
你也可以為解釋性語言(如shell腳本語言)寫個編譯器來編譯,這樣它就成了「編譯語言」;
你也可以為編譯型語言(如c語言)寫個解釋器來執行,這樣它就成了「解釋性語言」
⑺ 解釋性語言和編譯型語言的區別與不同
高級語言所編制的程序不能直接被計算機識別,必須經過轉換才能被執行,按轉換方式可
將它們分為兩類:
1.解釋類:執行方式類似於我們日常生活中的「同聲翻譯」,應用程序源代碼一邊由
相應語言的解釋器「翻譯」成目標代碼(機器語言),一邊執行,因此效率比較低,而且不
能生成可獨立執行的可執行文件,應用程序不能脫離其解釋器,但這種方式比較靈活,可
以動態地調整、修改應用程序,典型的解釋型的高級語言有BASIC。
2.編譯類:編譯是指在應用源程序執行之前,就將程序源代碼「翻譯」成目標代碼
(機器語言),因此其目標程序可以脫離其語言環境獨立執行,使用比較方便、效率較高。
但應用程序一旦需要修改,必須先修改源代碼,再重新編譯生成新的目標文件(*.OBJ)才
能執行,只有目標文件而沒有源代碼,修改很不方便。現在大多數的編程語言都是編譯型
的,例如Visual C++、Delphi等。
高級語言里一個程序的編譯和執行大概是 下面的情況:
編譯器將高級語言從源代碼翻譯成與之等價的目標程序(就相當於從中文翻譯成中文),而後就隱退了。在隨後的某個時刻,
用戶啟動目標程序由操作系統執行。實現高級語言的另外一種方式為解釋:
與編譯不同的是,解釋器在目標程序(其實根本就沒有目標程序,只是與編譯來對比)執行期間,解釋器一直隨之運行
。這種執行過程完全由解釋器控制的。從效果上看,解釋器實現了一台「虛擬計算機」,其「機器語言」就是高級語言,解釋器一次讀入一條或多條語句
,按照其自身規定的方式去執行相應的操作。一般說來,解釋比編譯有著很好的靈活性;編譯一般有著較好的性能。但是有些語言確是採用了兩者的混合形式:
書中的原文:」如果初始階段的翻譯器比較簡單,我們就說這個語言是「解釋的」。如果翻譯器很復雜,我們就說這一語言是「編譯的」。現在兩者的區分變得有些模糊了,因為「簡單」和「復雜」都是修飾性術語,也因為完全可能出現用一個編譯器(復雜的翻譯過程)生成代碼,而後又由一個復雜的虛擬機(解釋器)執行。對於最後這種情況,如果翻譯器對程序做了徹底的分析(而不是做某種「機械的」變換),而且有關的中間語言程序與源程序並沒有很強的相似性,我們還是說這個語言是編譯的。這兩種特性----徹底的分析和非平凡的變換-----是刻畫編譯方式的標志性特徵。「
⑻ 什麼是編譯性語言、解釋性語言和腳本語言
計算機不能直接理解高級語言,只能直接理解機器語言,所以必須要把高級語言翻譯成機器語言,計算機才能值型高級語言編寫的程序。
翻譯的方式有兩種,一個是編譯,一個是解釋。兩種方式只是翻譯的時間不同。編譯型語言寫的程序執行之前,需要一個專門的編譯過程,把程序編譯成為機器語言的文件,比如exe文件,以後要運行的話就不用重新翻譯了,直接使用編譯的結果就行了(exe文件),因為翻譯只做了一次,運行時不需要翻譯,所以編譯型語言的程序執行效率高。
解釋則不同,解釋性語言的程序不需要編譯,省了道工序,解釋性語言在運行程序的時候才翻譯,比如解釋性basic語言,專門有一個解釋器能夠直接執行basic程序,每個語句都是執行的時候才翻譯。這樣解釋性語言每執行一次就要翻譯一次,效率比較低。
1.腳本語言(JavaScript,VBscript等)介於HTML和C,C++,Java,C#等編程語言之間。
HTML通常用於格式化和鏈結文本。而編程語言通常用於向機器發出一系列復雜的指令。
2.腳本語言與編程語言也有很多相似地方,其函數與編程語言比較相象一些,其也涉及到變數。與編程語言之間最大的區別是編程語言的語法和規則更為嚴格和復雜一些.
3.與程序代碼的關系:腳本也是一種語言,其同樣由程序代碼組成。
註:腳本語言一般都有相應的腳本引擎來解釋執行。 他們一般需要解釋器才能運行。JAVASCRIPT,ASP,PHP,PERL都是腳本語言。C/C++編譯、鏈接後,可形成獨立執行的exe文件。
4.腳本語言是一種解釋性的語言,例如vbscript,javascript,installshield script等等,它不象c/c++等可以編譯成二進制代碼,以可執行文件的形式存在.
腳本語言不需要編譯,可以直接用,由解釋器來負責解釋。
5.腳本語言一般都是以文本形式存在,類似於一種命令.
舉個例子說,如果你建立了一個程序,叫aaa.exe,可以打開.aa為擴展名的文件.
你為.aa文件的編寫指定了一套規則(語法),當別人編寫了.aa文件後,你的程序用這種規則來理解編寫人的意圖,並作出回應.那麼,這一套規則就是腳本語言.JAVA語言
java很特殊,java程序也需要編譯,但是沒有直接編譯稱為機器語言,而是編譯稱為位元組碼,然後用解釋方式執行位元組碼。Java既可以被編譯,也可以被解釋。通過編譯器,可以把Java程序翻譯成一種中間代碼 - 稱為位元組碼 - 可以被Java解釋器解釋的獨立於平台的代碼。通過解釋器,每條Java位元組指令被分析,然後在計算機上運行。只需編譯一次,程序運行時解釋執行。下圖說明了它是如何工作的
⑼ 解釋型語言和編譯型語言的區別是什麼
解釋型語言和編譯型語言的區別是在於翻譯的時間點不同。編譯型語言是在代碼執行之前進行編譯,生成中間代碼文件。解釋型語言是在運行時進行及時解釋,並立即執行,當編譯器以解釋方式運行的時候,也稱之為解釋器。
計算機不能理解除任何機器語言之外的語言,所以必須把程序員所寫的代碼翻譯成機器語言才能執行程序。程序語言翻譯成機器語言的工具,被稱為翻譯器。
解釋型語言的特性
解釋型語言效率低,每執行一次都要進行翻譯。非獨立性,跨平台性好編譯型語言進行移植後要重新編譯,相對而言解釋型語言跨平台較容易。
同等條件下,編譯型語言對系統的條件要求比較低,像開發操作系統,大型應用程序,資料庫系統,則用編譯型語言。對不同平台兼容性有一定要求的程序通常使用解釋型語言。