位元組碼(英語:Bytecode)通常指的是已經經過編譯,但與特定機器碼無關,需要直譯器轉譯後才能成為機器碼中間代碼。位元組碼通常不像源碼一樣可以讓人閱讀,而是編碼後的數值常量、引用、指令等構成的序列。[1]

位元組碼主要為了實現特定軟體運行和軟體環境、與硬體環境無關。位元組碼的實現方式是通過編譯器虛擬機器。編譯器將源碼編譯成位元組碼,特定平臺上的虛擬機器將位元組碼轉譯為可以直接執行的指令。位元組碼的典型應用為Java bytecode[2] [3]

参见

编辑

参考资料

编辑
  1. ^ Dynamic Machine Code Generation. Google Inc. [2023-02-21]. (原始内容存档于2017-03-05). 
  2. ^ The Implementation of Lua 5.0. [2024-07-13]. (原始内容存档于2020-07-30).  (NB. This involves a register-based virtual machine.)
  3. ^ Dalvik VM. [2012-10-29]. (原始内容存档于2013-05-18).  (NB. This VM is register based.)


📚 Artikel Terkait di Wikipedia

Java虚拟机

Java虛擬機(英語:Java Virtual Machine,縮寫:JVM),一種能夠執行Java位元組碼的虛擬機器,以堆疊結構機器來實作。最早由昇陽電腦所研發并实现第一个实现版本,是Java平臺的一部份,能夠執行以Java語言寫作的軟體程式。 Java虚拟机有自己完善的硬件架构,如处理器、堆栈、

Apache Derby

Java程式,因此只需要操作系统支援Java虛擬機,Derby便可執行。 Derby是特別地為Java環境進行優化,Derby本身不僅是一個純Java程式,而且Derby在執行用戶的SQL程式時,能夠把SQL編譯成Java bytecode並以系統的Java虛擬機執行。由於SQL程式轉成的Java

Java字节码

Java 字节码(英語:Java bytecode)是Java虚拟机执行的一种指令格式。大多数操作码都是一个字节长,而有些操作需要参数,导致了有一些多字节的操作码。而且并不是所有可能的256个操作码都被使用;其中有51个操作码被保留做将来使用。除此之外,原始Java平台开发商,昇陽微系统,额外保留了3个代码永久不使用。

Jasmin

語法,其語言設計簡潔與易讀,編譯完成後會被轉成為一中間碼 (bytecode) 的 JVM Class 檔,可用於 Java 即時系統 (Java runtime system). 編譯完成後會形成二種接進低階檔案格式即 Java classes (Class) 檔與 Java Archive (JAR) 檔為主,軟體主要網址為

Java 5.0

自動拆箱的本质,通过调用xxxValue将对象值化 自動裝箱的新功能,可能是從C#語言身上學習來的,Java已經越來越像C#。然而Java對自動裝箱/拆箱的支援,僅是利用編譯器實現,在Java Bytecode中,並無自動裝箱/拆箱的操作碼(opcode)。 泛型就像是C++的模板。原有的Collection

WebAssembly

Flash / ActionScript Microsoft Silverlight Java Applet / JavaFX asm.js Native Client 其他位元組碼 Java bytecode 通用中間語言 (CIL) Release 2.0. 2022年6月1日 [2023年2月11日]

直譯器

直譯與編譯之間的可能性。例如,用Emacs Lisp所撰寫的原始碼會被編譯成一種高度壓縮且最佳化的另一種LISP原始碼格式,這就是一種字节码(bytecode),而它並不是機器碼(因此不會被綁死在特定的硬體上)。這個"編譯過的"碼之後會被字节码直译器(使用C寫成的)轉譯。在這種情況下,這個"編譯過的

Eiffel

released under GNU GPL license, translates Eiffel code either to C or Java bytecode, not standard compliant, with emphasis on performance. "The Eiffel Compiler"