位元組碼(英語: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

Jasmin

與連結(linker)。 Jasmin 的編寫以類似 assembler-like 語法,其語言設計簡潔與易讀,編譯完成後會被轉成為一中間碼 (bytecode) 的 JVM Class 檔,可用於 Java 即時系統 (Java runtime system). 編譯完成後會形成二種接進低階檔案格式即

WebAssembly

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

PHP加速軟件

PHP加速軟件是一種將PHP程式碼編譯之後所產生的bytecode暫存在共享記憶體內供重複使用,以提升執行效率的插件軟件。 Alternative PHP Cache(APC)是一套開放原始碼的自由PHP加速軟體,除了可以把將PHP編譯產生的bytecode暫存在共享記憶體內重複使用,亦會把中間碼作優化。

Java字节码

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

Python

(原始内容存档于2022-08-20).  Python Bytecode Instructions. Docs.python.org. [2016-02-16]. (原始内容存档于2020-06-05).  Python module to generate and modify bytecode. [2023-02-22]

Apache Derby

rby本身不僅是一個純Java程式,而且Derby在執行用戶的SQL程式時,能夠把SQL編譯成Java bytecode並以系統的Java虛擬機執行。由於SQL程式轉成的Java bytecode能被JIT動態翻譯,因此Derby可能比傳統的資料庫管理系統更佳的性能。 其他特性包括: 支援主從架構或

指令集架構

一些虛擬機器支持基于Smalltalk,Java虛擬機,微軟的公共語言运行时虛擬機所生成的字节码,他們的指令集体系將bytecode(字节码)从作为一般手段的代码路径翻譯成本地的機器語言,并通过解译执行并不常用的代码路径,全美達以相同的方式开发了基于x86指令体系的VLIW處理器。

ARM架構

ARM還開發出一項技術,Jazelle DBX(Direct Bytecode eXecution),允許它們在某些架構的硬體上加速執行Java bytecode,就如其他執行模式般,當呼叫一些無法支援bytecodes的特殊軟體時,能提供某些bytecodes