為什麼Java同時使用編譯器和直譯器?


讓我們從一個基本問題開始這篇文章。

什麼是語言翻譯器?

你可能會想到一個工具或軟體,可以根據需要在語言之間進行翻譯,以便雙方都能理解。你的想法完全正確。

在計算機程式設計中,編譯器和直譯器只是語言翻譯器。這些是將程式語言的原始碼翻譯成機器碼、位元組碼或其他中間程式碼的軟體程式/工具。或者,簡單地說,它將程式碼從高階語言轉換為低階語言,使其成為機器可理解的程式碼。

每個程式設計師都知道,在各種語言中,直譯器和編譯器是分別使用的。但是Java程式語言同時使用瞭解釋器和編譯器。Java程式語言同時使用編譯器和直譯器,因為源程式程式碼首先被轉換成二進位制程式程式碼。然後,這段程式碼由JVM執行,JVM通常是一個基於軟體的直譯器。

透過使用編譯後的位元組碼,直譯器可以變得小巧而實用。這個二進位制程式碼也有助於Java的功能,因為如果使用正確,它將在任何JVM上執行,而不管裝置或軟體設定如何。Java同時使用瞭解釋器和編譯器。

因此,我們將為您提供更多關於Java編譯器和Java直譯器的資訊。

Java編譯器

Java編譯器也稱為javac。它將原始碼轉換為稱為位元組碼檔案的中間檔案。每種型別的作業系統使用不同的位元組碼檔案這一事實允許平臺獨立性。

Java編譯器將整個原始碼轉換成機器碼檔案或其他中間程式碼,然後執行。它是獨立於平臺的。位元組碼主要是編譯器在原始碼編譯後生成的中間程式碼。

可以使用命令列中的“javac.exe”命令啟動Java編譯器。

Java編譯器是如何工作的?

  • 它在突出顯示錯誤之前快速掃描整個原始碼。

  • 在建立位元組碼的過程中會消耗更多記憶體。

  • 它檢查是否存在任何拼寫或語法錯誤,以確保程式正確。

  • 此外,如有必要,它還會向我們的程式新增一些額外的程式碼。

Java直譯器

Java與每個作業系統相容,並且Java直譯器將位元組碼轉換為機器碼。根據作業系統,這個機器碼將會改變。

直譯器是一個計算機程式,它透過將高階程式語句轉換為彙編級程式語言來執行類似的功能。執行程式時,二進位制程式碼(二進位制程式語言)將轉換為機器碼(機器程式語言)。

Java直譯器是如何工作的?

  • 它將二進位制程式碼轉換為機器的本機程式碼。

  • 直譯器逐行翻譯語言。

  • 當一行出現錯誤時,該過程結束。

Java編譯器和Java直譯器的區別

  • 程式在完全編譯成機器碼之前由編譯器編譯,然後直譯器逐行解釋。

  • 編譯器一次顯示所有錯誤和警告,而直譯器一次只顯示一個錯誤。

  • 與掃描整個程式的編譯器不同,直譯器在讀取每一行後查詢錯誤。

  • 直譯器比編譯器更容易除錯。

  • 與編譯器相比,直譯器執行時間更長。

結論

任何程式語言都可以用來生成機器碼。任何程式語言、一組語言或一種語言。

與許多其他現代程式語言一樣,Java也同時使用直譯器和編譯器。目標是結合兩者的最佳特性。

Java編譯和解釋完美無缺。Java應用程式使用Java編譯器和JVM(一個基於軟體的直譯器)在計算機上完全執行。

Java同時使用編譯器和直譯器。這樣直譯器就可以使用Java程式碼,編譯器先將程式碼轉換為位元組碼,然後再使用。然後,直譯器將位元組碼轉換為其他機器碼,例如Linux、Microsoft Word、Windows 10等。

更新於:2024年8月6日

5000+ 次瀏覽

啟動你的職業生涯

透過完成課程獲得認證

開始學習
廣告