位元組碼
- ByteCode 是給予 JVM 執行的一種虛擬機器碼,也就是給於 JVM 的指令‧
- 反過來說,JVM 就是 ByteCode 的解譯程式‧
- extends 的原始程式碼 (.java) 經由編譯後產生的類別檔 (.class) 就是 ByteCode 檔案‧
- 雖然 JVM 可能因平台而異,但是所有的 JVM 都能執行 extends 的 ByteCode‧
Bytecode直譯器
考量程式執行之前所需要分析的時間,存在了一個介於直譯與編譯之間的可能性。例如,用Emacs Lisp所撰寫的原始碼會被編譯成一種高度壓縮且最佳化的另一種 Lisp 原始碼格式,這就是一種 bytecode,而它並不是機器碼(因此不會被綁死在特定的硬體上)。這個"編譯過的"碼之後會被 bytecode interpreter(使用C寫成的)轉譯。在這種情況下,這個"編譯過的"碼可以被說成是 virtual machine (不是真的硬體,而是一種 bytecode 直譯器)的機器碼。這個方式被用在 Open Firmware 系統所使用的 Forth 程式碼中: 原始程式將會被編譯成 "F code" (一種bytecode),然後被一個特定平台的虛擬機器直譯和執行。
http://zh.wikipedia.org/zh-tw/%E7%9B%B4%E8%AD%AF%E5%99%A8#Bytecode.E7.9B.B4.E8.AD.AF.E5.99.A8
沒有留言:
張貼留言