當前位置:首頁 » 編程軟體 » 先編譯後執行邊執行邊編譯

先編譯後執行邊執行邊編譯

發布時間: 2022-02-12 01:53:51

A. java的解釋執行是先全部解釋完後再執行還是邊解釋邊執行

它首先將源代碼編譯成二進制位元組碼(bytecode),然後依賴各種不同平台上的虛擬機來解釋執行位元組碼。從而實現了「一次編譯、到處執行」的跨平台特性。Java語言是解釋型的。如前所述,Java程序在Java平台上被編譯為位元組碼格式,然後可以在實現這個Java平台的任何系統中運行。在運行時,Java平台中的Java解釋器對這些位元組碼進行解釋執行,執行過程中需要的類在聯接階段被載入到運行環境中。既然Java語言是解釋型的,那它就是邊解釋邊執行咯 補充: 不過,雖然java是解釋型的語言,但是在不同的平台環境上的java虛擬機也是會有一次性解釋然後執行的情況的!!! 追問: java程序在一個平台上被解釋成了二進制目標代碼,退出java程序後,再運行java程序時,還需要再次解釋嗎?如果需要再次解釋,就顯得浪費資源;不再次解釋,程序就不能「一次編寫,到處運行」。 回答: 就hotspot虛擬機而言,有兩種模式,一是-client,二是-server -client模式下,是逐條解釋執行的 -server模式下,先解釋執行,然後jvm統計執行熱點,將這些熱點代碼仔細優化編譯成本地代碼,然後執行本地代碼,當這個熱點不再是熱點的時候,釋放編譯的代碼,重新解釋執行 其它的jvm可能在一啟動的時候就全部編譯成本地代碼 總之,JVM會自行優化!

B. 請教什麼是「解釋執行」,什麼是「編譯後執行」:

解釋執行就是把你的程序一句一句的執行。
編譯執行是這個開放環境(也可以說是這個語言)它自帶了一個編譯器。編寫好的代碼首先被編譯程匯編語言或者是機器語言,然後執行。多用在高級語言上。
所以解釋執行一般比編譯執行效率高。

沒有說反。語言越低級,越靠近機器,執行效率就會越高。

C. C++運行前要經過什麼步驟,先編譯,再鏈接最後運行

你說的沒錯。但現在的開發環境一般是集成化的,可以編譯、連接、執行一起在IDE(集成開發環境)中連續運行,不需要任何命令,滑鼠點「運行」即可。

D. 編譯後的程序比邊解釋邊執行的程序的運行速度快嗎為什麼

程序的編譯是指將人可以理解的代碼(如C的源代碼)段編譯成機器指令碼(二級制指令),也就是處理堆棧、處理器、匯流排的指令,交由計算機自動執行。解釋型語言是在需要執行時臨時編譯運行,執行時多了編譯的過程,自然就要慢的多了。
比較特殊的是java,javac命令編譯的結果雖然也是二進制文件,但實際也不是機器指令,而是優化後的代碼,最後的執行是通過java虛擬機再次編譯後執行。所以效率介於編譯型和解釋型之間。
目前java的執行速度已經有了大幅度的提升,但要想趕上或超越C 或者匯編,理論上是不現實的。

E. 執行C語言一定要先編譯么,不可以直接執行么

一般來說編譯過後就成了基本上能執行的2進制代碼。但是這些2進制代碼並不完善,一個程序往往需要調用不止一部分的代碼,所以需要把這些代碼全部整合起來才能執行。
即時你的程序看起來只有一個文件,但是編譯過後,多多少少裡面至少會調用到一些操作系統功能,和其它的一些設置,所以依然需要組建這個過程把這個程序和這些系統默認的代碼組建起來形成一個完成、單一的可執行文件。所以一般組建過程就包含了組建內部和外部代碼,一般來說內部代碼就是我說的系統預留的必要的一些代碼(例如怎麼具體完成把一些字元顯示在屏幕上呀這些功能),而外部代碼就是額外的調用自己寫得或者別人寫得其它程序功能(往往當你的程序調用了非c標准函數的時候)。
所以就算你的代碼可以編譯,但是可能因為組建並不成功(例如需要組建的代碼本身有bug,或者丟失,或者版本不匹配),你的程序依然可能無法正確運行。

F. C語言既可以編譯執行又可以解釋執行嗎 編譯執行怎麼解釋 解釋執行又怎麼解釋

C 語言程序僅可以解釋執行。

解釋程序是將源程序(如BASIC)作為輸入,解釋一句後就提交計算機執行一句,並不形成目標程序。編譯程序是把高級語言(如FORTRAN、COBOL、Pascal、C等)源程序作為輸入,進行翻譯轉換,產生出機器語言的目標程序,然後再讓計算機執行這個目標程序,得到計算結果。

相對於編譯性語言,其優點是可移植性好,只要有解釋器環境,程序就可以在不同的操作系統上運行。

缺點是代碼需要有專門的解釋器,在程序運行時,除要給用戶程序本身分配內存空間外,解釋器也佔用系統資源,所以其運行速度較慢。另外,也很難達到像C、C++那樣操作系統底層操作的目的。

解釋型語言常用於,一是對運行速度要求不高(如一些網頁腳本等)的場合,二是對跨平台(操作系統的兼容性)有要求的場合。

(6)先編譯後執行邊執行邊編譯擴展閱讀

1、Python和Java語言,專門有一個解釋器能夠直接執行Python程序,每個語句都是執行的時候才翻譯。

2、Python代碼在運行前,會先編譯成中間代碼,每個 .py 文件將被換轉成pyc 文件,pyc 就是一種位元組碼文件,它是與平台無關的中間代碼。不管放在 Windows 還是 Linux 平台都可以執行,運行時將由虛擬機逐行把位元組碼翻譯成目標代碼。

G. SQL語句在PL/SQL編譯是從後往前執行,那真的執行的時候了大蝦解釋下

(8) SELECT (9) DISTINCT (11) <TOP_specification> <select_list>
(1) FROM <left_table>
(3) <join_type> JOIN <right_table>
(2) ON <join_condition>
(4) WHERE <where_condition>
(5) GROUP BY <group_by_list>
(6) WITH {CUBE | ROLLUP}
(7) HAVING <having_condition>
(10) ORDER BY <order_by_list>
這是執行順序

順序查詢:根據表的某個(些)欄位重排記錄,進行順序查詢時,要先排序以提高查詢效率。
順序查詢,會以主鍵作為默認的索引進行查詢,如果沒有主鍵和索引,就以第一個欄位,進行排序,進行查詢。

索引查詢:按照某個關鍵字(或其表達式)來建立記錄的邏輯順序。
索引查詢,已索引的順序為條件,找到索引對應的記錄,得到查詢的結果集。

先答這么多,明天我去問下DBA

H. 編譯執行和解釋執行的區別

一、主體不同

1、編譯執行:由編譯程序將目標代碼一次性編譯成目標程序,再由機器運行目標程序。

2、解釋執行:將源語言直接作為源程序輸入,解釋執行解釋一句後就提交計算機執行一句,並不形成目標程序。

二、優勢不同

1、編譯執行:相比解釋執行編譯執行效率高,佔用資源小,適合復雜程序

2、解釋執行:開發速度快,出現嚴重BUG的幾率小。


三、缺點不同

1、編譯執行:兼容性差,例如在windows平台上寫的編譯程序一般不可以在unix平台上運行。

2、解釋執行:解析需要時間,不生成目標程序而是一句一句的執行的方式會造成計算機資源的浪費,即執行效率低。


I. java既然是先編譯,然後再執行編譯後的位元組碼文件,那是不是在編譯後就可以刪除源文件了

理論上是的,你第一步的 javac 將你的 .java 文件 編譯成 .class 位元組碼,之後 用 java 命令來運行 .class 文件。所以是可以刪掉源文件,但是一般程序都是要調試,調試後你的源文件就要變動,變動後就要重新編譯,所以一般沒人刪源文件,然後再重新寫一份。

J. C#程序不是一次編譯後執行了,而是編譯成中間代碼,在。net環境由JIA編譯器邊編輯邊執行是什麼意思

c#和c++不同,c++是完全編譯的,不需要特別的輔助容器就可以直接運行,c#和vb等等不是完全編譯的程序,是一種解釋性程序,源代碼一般只能編譯成一種中間語言(MSIL)然後在.net對應版本的容器中執行(.net framework),也就死c #程序的執行要依靠framwork的解釋才能執行

熱點內容
可以上傳視頻網站 發布:2025-03-18 01:29:17 瀏覽:931
mysql密碼忘記了怎麼 發布:2025-03-18 01:23:00 瀏覽:857
java與oracle 發布:2025-03-18 01:18:05 瀏覽:704
怎麼給win7電腦文件加密 發布:2025-03-18 01:10:41 瀏覽:988
python生成隨機數 發布:2025-03-18 01:10:40 瀏覽:94
手機存儲卡怎麼設置 發布:2025-03-18 01:04:26 瀏覽:213
背演算法好處 發布:2025-03-18 01:02:18 瀏覽:57
win7添加刪除在哪個文件夾 發布:2025-03-18 01:02:13 瀏覽:705
蘋果寫源碼 發布:2025-03-18 00:50:47 瀏覽:363
生存源碼 發布:2025-03-18 00:50:46 瀏覽:351