代码之家  ›  专栏  ›  技术社区  ›  John Gietzen

CLR是否与Java(作为一种语言)不兼容?

  •  6
  • John Gietzen  · 技术社区  · 14 年前

    也就是说,IL不是图灵语言吗?你不能在IL中编写一个JVM吗?当然,答案是肯定的,但为什么还要走那么远呢?

    我的问题是:

    为了使Java适合,需要扭曲或破坏多少Java?


    当然, 可以为CLR+.NET编译:

    import System.*;
    
    public class HelloWorldExample
    {
        public static void main(String args[])
        {
            Console.WriteLine("Hello World !");
        }
    }
    

    澄清:

    例如,我认为泛型在某种程度上是一致的。我相信这是一个类似的故事,但也有例外。

    3 回复  |  直到 14 年前
        1
  •  6
  •   Gabe Timothy Khouri    14 年前

    J#项目实现了足够多的Java标准库,大多数Java应用程序只需稍加修改就可以编译。注意,J#可以加载JVM字节码以实现兼容性,但是J#source总是编译成CLR字节码。

        2
  •  0
  •   Andy Thomas    14 年前

    快速搜索显示 IKVM 以及正在进行的项目 Ja.NET

    也就是说,我可以看到走另一条路的价值。

        3
  •  -3
  •   Michael Aaron Safyan    14 年前

    是的,但是考虑到Java被更广泛地使用和更标准。。。难道你不想用另一种方法,即将C#编译成Java字节码吗?当然,答案是可以编写一个Java编译器来为CLR发出字节码,或者编写一个C编译器来发出Java字节码。不过,其诀窍在于,您需要提供一个/多个标准库的自定义实现,该实现将遵从该平台的一个或多个库。考虑到这两个api的规模,这将是一项相当重要的任务。这可能需要一个相当大的团队在合理的时间内完成。如果你打算这么做的话,我会建议你开始一个开源项目,尽管C/CLR是微软的ism,但我不确定能产生多少热情。