针对多种编程语言/平台

问题描述 投票:0回答:3

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

java c# cross-platform
3个回答
4
投票

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


4
投票

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

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

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

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

执行类似操作的另一种方法是利用可以从模型生成源代码的 UML 工具。

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


1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.