當前位置:首頁 » 編程軟體 » 編程語言可以既編譯有解釋嗎

編程語言可以既編譯有解釋嗎

發布時間: 2023-05-29 04:09:43

java是解釋性編程語言嗎

Java是一種特殊凳斗段的高級性語言,它既有解釋棗譽性語言的特徵,也有編譯性語言的特徵,因為它是經過先編譯,後解釋的過程。
簡單說:
HelloWorld.java————>HelloWolrd.class————>特定平台的機器代碼
①編譯
②解釋
編寫出一個HelloWorld.java文件,通過javac.exe解釋銷薯器編譯成了一個不是特定平台(操作系統)的機器碼HelloWorld.class文件。當然這種機器碼是不可以執行的,必須使用java解釋器(java.exe)來執行的。可是java.exe不具有解釋的能力,它是調用jvm-java虛擬機來解釋成適用當前平台的機器碼。
——紙上得來終覺淺,絕知此事要躬行

② 在計算機語言中,解釋語言有那些; 編譯語言有哪些

解釋語言:BASIC、PHP、Javascript
編譯語言:c、c++、Delphi、Java、fortran……

③ 計算機高級程序語言的兩種工作方式(解釋方式和編譯方式)的區別是什麼

高級語言所編制的程序不能直接被計算機識別,必須經過轉換才能被執行,按轉換方式可
將它們分為兩類:
1.解釋類
執行方式類似於我們日常生活中的「同聲翻譯」,應用程序源代碼一邊由相應語言的解釋器「翻譯」成目標代碼(機器語言),一邊執行,因此效率比較低,而且不能生成可獨立執行的可執行文件,應用程序不能脫離其解釋器,但這種方式比較靈活,可以動態地調整、修改應用程序,典型的解釋型的高級語言有BASIC。
2.編譯類
編譯是指在應用源程序執行之前,就將程序源代碼「翻譯」成目標代碼(機器語言),因此其目標程序可以脫離其語言環境獨立執行,使用比較方便、效率較高。但應用程序一旦需要修改,必須先修改源代碼,再重新編譯生成新的目標文件(*.OBJ)才能執行,只有目標文件而沒有源代碼,修改很不方便。現在大多數的編程語言都是編譯型的,例如Visual C++、Delphi等。

④ 編程語言的概論

編程語言原本是被設計成專門使用在計算機上的,但它們也可以用來定義演算法或者數據結構。正是因為如此,程序員才會試圖使程序代碼更容易閱讀。
編程語言往往使程序員能夠比使用機器語言更准碧大確地表達他們所想表達的目的。對孫慧晌那些從事計算機科學的人來說,懂得程序設計語言是十分重要的,因為在當今所有的計算都需要程序設計語言才能完成。
在過去的幾十年間,大量的編程語言被發明、被取代、被修改或組合在一起。盡管人們多次試圖創造一種通用的程序設計語言,卻沒有一次嘗試是成功的。之所以有那麼多種不同的編程語言存在的原因是,編寫程序的初衷其實也各不相同;新手與老手之間技術的差距非常大,而且有許多語言對新手來說太難學;還有,不同程序之間的運行成本(runtime cost)各不相同。
有許多用於特殊用途的語言,只在特殊情況下使用。例如,PHP專門用來顯示網頁;Perl更適合文本處理;c語言被廣泛用於操作系統和編譯器的開發(所謂的系統編程)。
高級語言的出現使得計算機程序設計語言不再過度地依賴某種特定的機器或環境。這是因為高級語言在不同的平台上會被編譯成不同的機器語言,而不是直接被機器執行。最早出現的編程語言之一FORTRAN的一個主要目標,就是實現平台獨立。
雖然大多數的語言可以既可被編譯又可被解譯,但大多數僅在一種情況下能夠良好運行。在一些編程系統中,程序要經過幾個階段的編譯,一般而言,後階段的編譯往往更接近機器語言。這種常用的使用技巧最早在1960年代末用於BCPL,編譯程序先編譯一個叫做「0代碼」的轉換程序(representation),然後再使用虛擬器轉換到可以運行於機器上的真實代碼。這種成功的技巧之後又用於Pascal和P-code,以及Smalltalk和二進制碼,在很多時候,中間過渡的代碼往往是解譯,而不是編譯的。
如果所使用的翻譯的機制是將所要翻譯的程序代碼作為一個整體翻譯,並之後運行內部格式,那麼這個翻譯過程就被成為編譯。因此,一個編譯器是一個將人可閱讀的程序文本(叫做源代碼)作為輸入的數據,然後輸出可執行文件(object code)。所輸出的可執行文件可以是機器語言,由計算機的中央處理器直接運行,或者是某種模擬器的二進制代碼。
如果程序代碼是在運行時才即時翻譯,那麼這種翻譯機制就被稱則鋒作直譯。經直譯的程序運行速度往往比編譯的程序慢,但往往更具靈活性,因為它們能夠與執行環境互相作用。

⑤ 對於大多數語言來說,程序要麼需要編譯,要麼需要解釋

這老纖是一個編程基礎的問題。 目前編程語言主要有兩種類型,一種是編譯型語言,一種是解釋型語言。二者的區別在於:編譯侍帶仿型語言需要編譯、鏈接生成可行坦執行文件之後才能運行,解釋型語言直接就可以運行。C語言是一種編譯型語言。

⑥ 什麼是編譯性語言、解釋性語言和腳本語言

計算機不能直接理解高級語言,只能直接理解機器語言,所以必須要把高級語言翻譯成機器語言,計算機才能值型高級語言編寫的程序。
翻譯的方式有兩種,一個是編譯,一個是解釋。兩種方式只是翻譯的時間不同。編譯型語言寫的程序執行之前,需要一個專門的編譯過程,把程序編譯成為機器語言的文件,比如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位元組指令被分析,然後在計算機上運行。只需編譯一次,程序運行時解釋執行。下圖說明了它是如何工作的

⑦ C#和Java都是即是編譯語言又是解釋語言嗎

我覺得他們都是解釋型語模源言。
首先編譯型語言和解釋型語言的區別就是:
編譯型語言執行的時候將代碼翻譯成機器可以識別的機器語言,執行完成後可以刪除編譯器。( 能不能跨平皮禪台取決於編譯器)。
解釋型語言執行的時候將代碼通過解釋器一邊翻譯成機器可以看懂旦握態的機器語言一邊執行(可以跨平台因為有解釋器(如JAVA的解釋器,解釋器解釋完後可以再JVM(虛擬機)里運行)。
以上答案純屬個人見解。

⑧ 為什麼說java既是解釋型語言又是編譯型語言啊!!

我的觀點:
不能這樣來理解,
所謂編譯型是能生成一種機器能直接運行的代碼,就象C++
解釋型的是就只有源代碼,不進行編譯,直接用解釋器來執行。

Java編譯成的class文件被設計為能在某種機器上能直接運行,如果真的能有這樣的機器,就能直接運行class文件,而.class就是該機器上能直接運行的文件類型。
就象windows上的exe,如果想在windows上運行其他操作系統上的程序,就要一個模擬器,也就是虛擬機, Java也是一樣的。
所以我還是覺得Java應該是編譯型的。

⑨ 請簡述解釋性編程語言和編譯性編程語言的區別

對於語言本身來說,各種編程語言本質沒什麼不同。所謂的「解釋性」和「編譯」指的是執行機制上的不同。
解釋性語言是指它常用的執行機制是使用一個「解釋器」來執行,解釋器對於程序是一句一句「翻譯」成機器語言來執行,例如shell腳本語言。
編譯型語言是指它常用的執行機制是使用一個「編譯器」來編譯成機器語言,然後你就可以直接運行(執行)這個編譯成的「可執行文件」。例如C語言
你也可以為解釋性語言(如shell腳本語言)寫個編譯器來編譯,這樣它就成了「編譯語言」;
你也可以為編譯型語言(如c語言)寫個解釋器來執行,這樣它就成了「解釋性語言」

⑩ C語言既可以編譯執行又可以解釋執行嗎

目前我知道的C語言只能編譯執行,就是先編譯成二進制的exe文件才能執行。
腳本語言才可以解釋執行。

熱點內容
androidactivity生命 發布:2024-04-27 07:33:48 瀏覽:83
win2008伺服器搭建網站 發布:2024-04-27 07:26:51 瀏覽:639
java的vector 發布:2024-04-27 07:05:00 瀏覽:203
舊電腦共享伺服器 發布:2024-04-27 06:32:21 瀏覽:339
java程序練習 發布:2024-04-27 06:24:00 瀏覽:438
sql30 發布:2024-04-27 06:22:10 瀏覽:55
怎樣防止sql注入 發布:2024-04-27 06:11:25 瀏覽:236
安卓為什麼不能登蘋果系統的游戲 發布:2024-04-27 06:11:23 瀏覽:601
編程日課 發布:2024-04-27 05:56:54 瀏覽:620
漏洞上傳工具 發布:2024-04-27 05:50:58 瀏覽:717