原始碼(source code)和位元組碼(bytecode)的區別

計算機是一種能根據使用者提供的指令執行任務的機器。計算機程式可以向計算機發出指令。它是用一套特定的程式語言編寫的。程式語言有很多種。大多數程式語言都是高階程式語言。用高階語言編寫的程式很容易被人或程式設計師理解。這些程式稱為原始碼。機器無法理解它們。因此,人類可讀可理解的程式必須轉換成機器可理解的格式。機器可理解的程式碼被稱為機器程式碼。使用C語言將整個機器程式碼轉換為C語言。有些程式語言將原始碼轉換為中間代...

主要區別-源代碼與字節碼

計算機是一種能根據用戶提供的指令執行任務的機器。計算機程序可以向計算機發出指令。它是用一套特定的編程語言編寫的。編程語言有很多種。大多數編程語言都是高級編程語言。用高級語言編寫的程序很容易被人或程序員理解。這些程序稱為源代碼。機器無法理解它們。因此,人類可讀可理解的程序必須轉換成機器可理解的格式。機器可理解的代碼被稱為機器代碼。使用C語言將整個機器代碼轉換為C語言。有些編程語言將源代碼轉換為中間代碼,然後將中間代碼轉換為機器代碼。在這個過程中,中間代碼被稱為字節碼。本文討論源代碼和字節碼之間的區別。源代碼和字節碼的關鍵區別在於,源代碼是使用人類可讀編程語言編寫的計算機指令的集合,而字節碼是源代碼和由虛擬機執行的機器代碼之間的中間代碼。

目錄

1. 概述和主要區別
2. 什麼是源代碼
3. 什麼是字節碼
4. 源代碼和字節碼的相似性
5. 並行比較-源代碼與表格式的字節碼
6. 摘要

什麼是源代碼(source code)?

編寫了一個程序來解決一個計算問題。一組程序被稱為軟件。為了開發軟件,開發人員應該對需求有很好的理解。根據需求,可以對系統進行設計。然後,用編程語言實現了所設計的系統。程序員可以使用編程語言將設計轉換成一組計算機程序。

這些程序可以被人類或程序員理解。它們的語法與英語相似。使用人類可讀的編程語言編寫的指令集合稱為源代碼。例如,C、Java等編程語言都集成了開發環境(IDE)來開發程序。也可以使用簡單的文本編輯器編寫程序。這些程序被稱為源代碼。

什麼是字節碼(bytecode)?

當編程語言從源代碼轉換為機器代碼時,一些編程語言將源代碼轉換為稱為字節碼的中間代碼。Java是使用字節碼的主要編程語言之一。將源代碼轉換為字節碼的過程如下。

源代碼(source code)和字節碼(bytecode)的區別

圖01:Java中的程序執行

在Java中,有一個虛擬機叫做Java虛擬機(JVM),它幫助運行Java程序。虛擬機類似於系統上安裝的操作系統。運行Java程序時,編譯器將Java程序或源代碼轉換為Java字節碼。然後JVM將字節碼轉換為機器碼。機器代碼由計算機直接執行。字節碼是為JVM編寫的。它不是針對機器的。因此,字節碼由各種平臺執行,如Windows、Linux和Mac。字節碼有數字代碼、常量和引用,它們對解析和語義分析的結果進行編碼。

源代碼(source code)和字節碼(bytecode)的共同點

  • 兩者都與計算機編程有關。
  • 兩者都應翻譯成機器代碼,供計算機執行指令。

源代碼(source code)和字節碼(bytecode)的區別

源代碼與字節碼
源代碼是使用人類可讀的編程語言編寫的計算機指令的集合。 字節碼是源代碼和由虛擬機執行的機器代碼之間的中間代碼。
可理解性
源代碼是可讀的人類或程序員。 字節碼可由虛擬機讀取。
源代碼是由人類生成的。 字節碼由編譯器生成。
格式
源代碼是純文本的形式,具有相似的英語語法和註釋。 字節碼有數字代碼、常量和引用,它們對解析和語義分析的結果進行編碼。
執行方法
源代碼不能被機器直接執行。 字節碼可由虛擬機執行。
執行速度
源代碼的速度比字節碼最低。 字節碼的速度比源代碼快。
性能
源代碼的性能不如字節碼。 字節碼的性能比源代碼高,因為它接近機器代碼。

總結 - 源代碼(source code) vs. 字節碼(bytecode)

程序員可以用程序向計算機提供指令。大多數程序都是用高級編程語言編寫的。人類可以理解它們,但計算機無法理解。因此,程序應轉換成機器可理解的格式。在這個過程中,不同的語言使用不同的方法。有些編程語言直接把程序轉換成機器代碼。其他語言將程序轉換為中間代碼,並將中間代碼轉換為機器代碼。源代碼和字節碼是這個過程中的兩個常見術語。源代碼和字節碼的區別在於,源代碼是使用人類可讀編程語言編寫的計算機指令的集合,而字節碼是源代碼和由虛擬機執行的機器代碼之間的中間代碼。

下載源代碼與字節碼的pdf文件

你可以下載這篇文章的PDF版本,並根據引文說明離線使用。請在這裡下載PDF版本:源代碼和字節碼的區別

引用

1Java JDK、JRE和JVM。此處提供

  • 發表於 2020-10-19 15:49
  • 閱讀 ( 60 )
  • 分類:科技

你可能感興趣的文章

perl公司(perl)和python(python)的區別

...器可理解的格式。諸如C和C++的程式語言使用編譯程式將原始碼轉換成機器語言。在Perl中,程式首先被轉換成位元組碼,然後位元組碼被轉換成機器指令。因此,Perl語言與C語言和C++語言相比是比較慢的語言。 執行Perl程式有不同...

  • 發佈於 2020-10-19 17:38
  • 閲讀 ( 42 )

原始碼(source code)和目的碼(object code)的區別

主要區別——原始碼與目的碼 軟體是程式的集合。程式是給計算機執行特定任務的一組指令。它們的指令是由程式設計師用程式語言編寫的。因此,開發一個軟體意味著開發一套程式。編寫程式的活動稱為程式設計。開發完...

  • 發佈於 2020-10-19 18:56
  • 閲讀 ( 189 )

源程式(source program)和目標程式(object program)的區別

...譯或解釋以供執行。反編譯器有助於將目標程式轉換回其原始源程式。需要注意的是,術語源程式和目標程式是作為相關術語使用的。如果你使用一個程式轉換程式(比如編譯器),輸入的是源程式,輸出的是目標程式。因此,...

  • 發佈於 2020-10-26 14:27
  • 閲讀 ( 50 )

為什麼java虛擬機器可以幫助程式碼更好地執行

...定硬體編寫的程式。它主要是用C/C++等語言編寫的。C/C++原始碼使用編譯器編譯成物件形式,然後透過連結所需的庫將其組裝成可執行檔案。以這種方式構建的程式將在為其構建的特定硬體和作業系統上執行,但可能無法在其他...

  • 發佈於 2021-03-13 07:13
  • 閲讀 ( 50 )

一個尺寸不適合所有人:為什麼軟體不能普遍相容

...兩個程式如何相互通訊。但是API是程式設計師(人類)在原始碼中用來表示兩個軟體應該相互通訊的東西。ABI實際上允許他們在軟體編譯和執行後這樣做。每個作業系統都實現一個特定的ABI,在同一作業系統的不同版本之間,ABI...

  • 發佈於 2021-03-13 08:34
  • 閲讀 ( 52 )

為什麼有些程式語言比其他語言快?

... 這意味著在執行之前,程式的原始碼首先被翻譯成一個較低的級別:機器程式碼。生成的產品稱為二進位制檔案(例如DLL檔案),它們與相關檔案連結在一起,使它們工作,從而建立所謂的可執行檔案...

  • 發佈於 2021-03-13 15:07
  • 閲讀 ( 42 )

如何從linux終端壓縮或解壓檔案

... 建立名為source的檔案_程式碼.zip包含當前目錄中的所有C原始碼檔案和標頭檔案,可以使用以下命令: zip source_code *.c *.h 每個檔案在新增時都會列出。將顯示檔名以及在該檔案上實現的壓縮量。 如果您檢視新的ZIP存檔檔案,您...

  • 發佈於 2021-04-03 14:07
  • 閲讀 ( 47 )

jre公司(jre)和軟體開發包(sdk)的區別

...成的程式無法在其他作業系統中執行。程式被編譯成java位元組碼,這是任何作業系統都無法理解的。 為了執行java位元組碼,您需要有一個將位元組碼轉換為作業系統相應本機命令的程式。這是Java執行時環境或JRE的功能。JRE只...

  • 發佈於 2021-06-22 13:03
  • 閲讀 ( 38 )

python(python)和博阿(boa)的區別

...on。它的工作原理與Java類似,它將Python程式碼編譯成中間位元組碼,然後由虛擬機器執行。還有另一個版本叫Jython,它用Java位元組碼編譯Python程式碼併在Java虛擬機器上執行。Jython利用了Java虛擬機器的流行和廣泛接受。不管您使...

  • 發佈於 2021-06-22 14:36
  • 閲讀 ( 51 )

安卓(android)和linux作業系統(linux)的區別

...droid是Google為移動裝置開發的開源作業系統。Android軟體的原始開發者Android,Inc.於2005年被Google,Inc.收購。它是基於Linux 2.6核心開發的。Linux作業系統是由LinusTorvalds於1991年開發的一種桌面計算機開源作業系統。Linux作業系統是作...

  • 發佈於 2021-06-23 19:17
  • 閲讀 ( 45 )