针对多种编程语言/平台

时间:2010-09-07 15:49:42

标签: c# java compiler-construction cross-platform

有没有很好的方法以非语言特定的方式定义接口/类层次结构,然后在指定的语言中生成相应的源代码?特别是,我需要将Java和C#作为我正在创建的相当全面的API的目标。我记得曾经在SF上看过一篇帖子,答案提到了一种“编译”成其他语言的编程语言 - 但我还是找不到帖子。那种语言可能是我正在尝试做的解决方案。

谢谢,

安迪

3 个答案:

答案 0 :(得分:4)

您考虑过UML了吗?很容易从UML中找到许多不同语言的代码生成器(例如this one可以生成C#,Java和VB.NET代码),但您可能需要仔细评估它是否适合您。作为一种标准,多年来已经实现了大量的criticism

答案 1 :(得分:4)

有很多方法可以做你喜欢的事情。

例如,您可以查看使用接口定义语言(IDL)。 Corba的IDL允许您声明对象&以语言中立的方式接口。然后,这些idl文件通过IDL编译器运行,该编译器为您选择的语言输出适当的类,标题,存根,代理等。

例如IIOP.NET是Corba for C#的一个实现。我不知道它有多好,但它会有一个IDL编译器吐出C#类。 Java有一个名为idlj的IDL编译器作为JDK的一部分。

理论上,你可以使用相同的接口实现C#和Java。类。

做类似事情的另一种方法是利用可以从模型生成源代码的UML工具。

另一种选择是使用类似WSDL / XSD的东西来定义你的接口和放大器。类型,并从中生成存根。

答案 2 :(得分:1)

看看IKVM.NET。有了它,您可以用Java(或JVM语言)编写程序并将其转换为.NET程序集。因此,您将拥有程序的JVM和.NET版本。