2014-03-12 28 views
-7

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

+6

它非常简单dear.Just编写和解释器为c和c + +。 – Kick

+0

Java与JVM是平台无关的。并猜测当前生产质量JVM的编写语言是什么? – SirDarius

+1

@Youngistan这就是所谓的Cint,这是恶梦的东西。 – chrylis

回答

5

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

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也将是“独立平台”。