是否可以使C / C ++平台独立

时间:2014-03-12 17:30:39

标签: java c++ c jvm platform

当通过引入JVM使Java独立于平台时,为什么不能通过引入类似于JVM的东西来使C / C ++平台独立?

2 个答案:

答案 0 :(得分:4)

Java与平台无关,但JVM不是,JVM与平台无关 我们必须开发编译器和解释器来实现像JVM这样的东西。

答案 1 :(得分:1)

C和C ++是将代码转换为二进制代码的编译器。因此,它们是平台相关的,因为不同的平台使用不同的二进制指令集。如果tw0平台使用相同的汇编语言但使用不同的二进制表示,那么告诉编译器生成汇编语言输出,将使平台能够汇总结果进入他们的个人二进制JVM就像是一种由不同平台识别的汇编语言。每个平台都以自己的方式和自己的二进制文件解释JVM。

a = b + c

mov a, R1
mov b, r2
add r1, r2 (putting results in r2)
st r2, c

对于不同的平台,它的二进制表示可能不同,但a = b + c是“机器无关的”

如果您要编写一个独立于平台的C描述并让所有平台制造商接受它,那么C也将是“平台无关的”。