字节码在不同编程语言中的差异

时间:2013-11-23 17:31:33

标签: jvm bytecode jit opcode pyc

我知道有几种解释型编程语言(PHP,Python,Java,Smalltalk)使用字节码作为执行代码的中间步骤。

不同语言的解释器生成的字节码形式之间是否存在差异,因为不同机器的汇编操作码之间存在差异?

另外,为了确保,字节码只能用于解释语言,对吧?

2 个答案:

答案 0 :(得分:3)

字节码是虚拟机执行的指令的通用词,与机器语言是由真实处理器执行的指令的通用术语相同。正如有许多不同的机器指令集一样,有许多不同的字节码指令集。有些像Java字节码一样是平台的文档部分。根据定义,所有Java虚拟机都执行完全相同的字节码。其他只是一个实现细节,因版本而异。

回答你的上一个问题:不,这是不正确的。 Java不是一种解释语言;它是即时编译的。 C#很相似。字节码可以是许多不同架构的一部分。

答案 1 :(得分:1)

正如欧内斯特所说,它是来自不同语言的供应商相关字节码实现。虽然已经尝试标准化字节码。已经参与了Microsoft CIL

的解决方案

值得一提的是LLVM编译器,它成为不同字节码的粘合剂,为任何CPU指令集提供优化编译。