我正在寻找一种方法来为多种语言(Java、C#、JavaScript)生成一些模型类,以保持这些语言之间的一致性。是否有一些工具可以帮助我在一个地方定义模型并在所有三种语言的每次更改后生成它?我在看JetBrains MPS,但它似乎对只生成一种语言很有用,它甚至写在文档中,建议只使用一种语言生成器(如果有的话)。
到目前为止,我发现的唯一方法是每种语言的 XML 文件和 XSL 转换,但我正在寻找更方便的方法。
我正在寻找一种方法来为多种语言(Java、C#、JavaScript)生成一些模型类,以保持这些语言之间的一致性。是否有一些工具可以帮助我在一个地方定义模型并在所有三种语言的每次更改后生成它?我在看JetBrains MPS,但它似乎对只生成一种语言很有用,它甚至写在文档中,建议只使用一种语言生成器(如果有的话)。
到目前为止,我发现的唯一方法是每种语言的 XML 文件和 XSL 转换,但我正在寻找更方便的方法。
从最严格的意义上说,这是不可能的,因为这些语言的某些特征不能互译。
例如,将delegate Method();
C# 放入,就像您在建模某些东西时可能会做的那样,它会立即中断到 Java 的直接转换,因为 Java 没有委托方法的概念。
当然,这两种语言都是图灵完备的,所以理论上它们确实可以翻译,但翻译者必须:
上面的步骤 2 太复杂了。(这就是为什么您可以将任何 C# 分发为已编译的 EXE 而不必担心有人窃取您的源代码。)