Q1
bytecode 字節(jié)碼,和 opcode 操作碼各是什么?
Q2
有什么區(qū)別?
Q3
解釋型語言都有類似的碼嗎?
我的理解是:
bytecode 和 opcode 都是中間碼
解釋型語言都會將源碼翻譯成中間碼,再由虛擬機(jī)(例如 jvm, zend)解釋執(zhí)行
2 回答

慕萊塢森
TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個贊
opcode 就是 Operation Code。
在 java 中使用的 bytecode 也是一種 opcode,因?yàn)槊總€操作碼都是用一個字節(jié),所以叫字節(jié)碼(其實(shí)也有多字節(jié)的)。
每一個字節(jié)用來表示一個指令,理論上可以有 256 個操作碼。
我們平時經(jīng)常看到的 iadd
(將兩個整數(shù)相加)、dadd
(將兩個浮點(diǎn)數(shù)相加)并不是字節(jié)碼,而是助記符。
很多解釋型語言都沒有類似的碼。

一只萌萌小番薯
TA貢獻(xiàn)1795條經(jīng)驗(yàn) 獲得超7個贊
bytecode和opcode都是都是一種中間碼,不存在可比性,java編譯成中間碼bytecode然后在jvm中執(zhí)行,,php編譯成中間碼opcode,在ZendVM中執(zhí)行。
添加回答
舉報(bào)
0/150
提交
取消