【问题标题】:Can we write a java virtual machine using any language?我们可以使用任何语言编写 java 虚拟机吗?
【发布时间】:2012-02-13 05:37:47
【问题描述】:

我们可以使用 c# 等任何编程语言编写 java 虚拟机吗?

我们可以用java语言写JVM吗?

【问题讨论】:

  • 是的。有人可以回答这些问题。

标签: java bootstrapping


【解决方案1】:

我不明白为什么你不能用你选择的编程语言编写 JVM,无论是 C# 还是 JAVA(但不确定你为什么要这样做)

【讨论】:

  • 当然。毕竟,它们是图灵完备的。
【解决方案2】:

是的,有许多不同的 JVM 实现。请参阅Wikipedia's List of Java virtual machines 了解其中的很多列表。

Jikes RVM 是一个用 Java 编写的 JVM,它不需要另一个 Java JVM 来运行。 IKVM.NET 包含 JVM 的 .NET 实现。

【讨论】:

    【解决方案3】:

    C#代码本身运行在微软的一种虚拟机中,所以如果你用c#编写另一个虚拟机,那么在速度的情况下它的性能会很差。所以最好选择 C/C++,这些语言是用来编写这样的应用程序的。使用 c 编译器生成的代码几乎等同于使用 asm 的代码。

    你肯定可以写虚拟机...

    【讨论】:

      【解决方案4】:

      我认为我们可以做到,但我们应该这样做吗?这会很慢。虚拟机之类的东西最好用C/C++写

      【讨论】:

      • 为什么只因为它是用 C# 实现的就慢?它可能会更快,具体取决于它的实现方式。
      • 因为原生代码比在虚拟机上运行的代码(比如C#)要快
      • 一个常见的误解,谁说机器必须是虚拟的?请注意,您正在与已经依赖于虚拟机的实现进行比较。
      【解决方案5】:

      是的,但是如果你用 Java 编写它,它必须在另一个 JVM 中运行(可能是它自身的另一个副本在另一个 JVM 中运行,等等)。

      【讨论】:

      • 这样做的理由很充分!而且,就像所有对自然的可怕罪恶一样,它已经完成了! (M-JVM 是我在谷歌快速搜索后发现的)
      • 您忘记了用于 Java 的 GNU 编译器,它可以生成本机 (x86) 代码。因此,您可以用 Java 编写 JVM,将其编译为可执行文件,然后使用它来运行其他 Java 程序。
      猜你喜欢
      • 1970-01-01
      • 2011-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-30
      • 2011-08-22
      相关资源
      最近更新 更多