“二进制代码”和“字节码”有什么区别?

4

我最近学习到,“字节码”更接近于机器语言,但它并不是一种机器语言。为什么我们需要在将编程语言转换成二进制代码之间采取一个中间步骤呢?我不明白这个二进制代码是什么样子的,是类似于10101这样的吗?

3个回答

2
字节码被认为是源代码和机器代码之间的中间级别代码。它是一种低级代码,是高级语言编写的源代码(编程语言)编译的结果。它针对的是虚拟机而不是特定的计算机架构。字节码允许单个编译二进制文件在各种平台上运行,并以几乎本地的效率执行。
机器码(二进制代码)是二进制(0和1)格式,与字节码和源代码完全不同。它被认为是源代码的最低级别表示。机器码是在编译或解释后获得的。它也被称为机器语言。机器码是机器语言中的一组指令。
虚拟机将字节码转换为机器码。此外,机器码和字节码之间的主要区别在于处理器或CPU可以直接执行机器码。另一方面,在编译源代码后创建了字节码。虚拟机可以执行它。

1
字节码名称源自一组指令集,其中包含一个一字节的操作码,后跟可选参数。字节码是编译机器代码和文本之间的中间形式。它是在保存时使用编程语言创建的,并且为了易于解释或减少硬件和操作系统的依赖性而允许在不同平台上运行相同类型的代码。字节码通常可以直接执行或在虚拟机(“p-code计算机”或解释器)上执行,也可以进一步编译为机器代码以获得更好的性能。

1
你可以说字节码是编译代码,它是平台无关的,因此可以在任何地方运行。如果是针对每个平台不同的机器码,这就是我们在运行时将编译代码转换为机器码的中间步骤的原因。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接