为什么没有人为其他语言(不仅仅是C或CPP)设计或创建类似中间件的JVM?

时间:2013-07-15 13:07:21

标签: java compiler-construction programming-languages jvm interpreter

我们知道我们有JVM将字节码转换为Java编译器提供给它的机器码。我们都知道JVM是依赖于平台的。想到的一个问题是为什么没有人为其他语言创建JVM之类的应用程序以实现平台独立性?如果JVM要实现平台独立性,那么我认为每种语言都可以独立于平台,只需要编写一些编译器和JVM,就像应用程序一样,可以帮助其他语言独立于平台。

请不要只考虑CPP或C.

谢谢和问候。

1 个答案:

答案 0 :(得分:1)

问题在于C ++远非未指定且依赖于机器具有可移植的有用字节码格式。

当你甚至不知道int,long og指针的大小时,你将如何获得c ++字节码和vm?

此外它还会很慢,而且这样做并没有什么好处。

------ ADDED ---------

即使你能做到,也会带来什么好处。所有的c ++程序仍然依赖于大多数服务的操作系统,所以即使你有一个C ++的可移植格式,一个Windows程序仍然只能在Intel / Amd x86芯片上运行,因为那是只有Windows支持的芯片。

是的我知道Windows RT(arm版本),但是该版本的Windows删除了普通桌面c ++程序所依赖的大多数方法,这也是为什么你不能(重新)编译Windows程序的原因RT。