Was sind Bytecode und Opcode?
Was ist der Unterschied?
Haben alle interpretierten Sprachen ?hnliche Codes?
Mein Verst?ndnis ist:
Bytecode und Opcode sind beide Zwischencodes
Interpretierte Sprachen übersetzen den Quellcode in Zwischencode, der dann von der virtuellen Maschine (z. B. JVM, Zend) interpretiert und ausgeführt wird
走同樣的路,發(fā)現(xiàn)不同的人生
opcode 就是 Operation Code。
在 java 中使用的 bytecode 也是一種 opcode,因?yàn)槊總€(gè)操作碼都是用一個(gè)字節(jié),所以叫字節(jié)碼(其實(shí)也有多字節(jié)的)。
每一個(gè)字節(jié)用來(lái)表示一個(gè)指令,理論上可以有 256 個(gè)操作碼。
我們平時(shí)經(jīng)??吹降?iadd
(將兩個(gè)整數(shù)相加)、dadd
(將兩個(gè)浮點(diǎn)數(shù)相加)并不是字節(jié)碼,而是助記符。
很多解釋型語(yǔ)言都沒(méi)有類似的碼。
bytecode和opcode都是都是一種中間碼,不存在可比性,java編譯成中間碼bytecode然后在jvm中執(zhí)行,,php編譯成中間碼opcode,在ZendVM中執(zhí)行。