【问题标题】:Target multiple programming languages/platforms针对多种编程语言/平台
【发布时间】:2010-09-07 15:49:42
【问题描述】:

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

谢谢,

安迪

【问题讨论】:

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


【解决方案1】:

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

【讨论】:

  • 我正在考虑使用 UML,因为我已经可以使用许多 UML 工具。我有点希望有人能提出一些允许一些基本代码生成的东西,只要 Java 和 C# 有共同的结构和基本库。
  • 我最喜欢的免费开源 UML 工具是 ArgoUML (argouml.tigris.org),它可以使用正确的插件为 Java 和 C# 生成代码。它还提供评论以帮助用户制作更好的 UML 图。
【解决方案2】:

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

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

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

因此,理论上您可以从相同的接口和类实现 C# 和 Java。

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

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2012-02-23
      • 2010-11-27
      • 1970-01-01
      • 1970-01-01
      • 2012-09-27
      • 2012-05-23
      • 1970-01-01
      • 1970-01-01
      • 2015-10-01
      相关资源
      最近更新 更多