【发布时间】:2020-08-14 04:34:50
【问题描述】:
我想构建一个 DSL 并按如下方式使用它:
- DSL 编译为 Java。
- 导出 DSL 编译器并将其打包(即作为 JAR),这样我就可以从 Java 应用程序调用 DSL 编译器,将“用我的 DSL 编写的代码”编译成“Java 源代码”(我将使用其他库以编程方式将 Java 编译成字节码)。
我可以使用 JetBrains MPS 构建 DSL 并按照说明导出其编译器吗?如果没有,其他建议是否值得赞赏?
【问题讨论】:
-
Java 本身需要编译。或者你的意思是它编译成 Java 字节码?因为你需要具体。 Java 不被解释,Java 9+ 不再适合 JAR 打包(因为您现在应该使用
jlink来创建应用程序的自定义运行时映像)。另外,我不是您的律师,我无法在法律上保护您免受任何(可能的)违反 JetBrains 许可证的行为。或 Java 编译器许可证。但我认为您可以使用任何 OpenJDK 编译器。如果你想使用 Oracle 版本,我希望你准备好你的支票簿。 -
我希望 DSL 编译器能够从“用我的 DSL 编写的代码”编译为“Java 源代码”(我会更新问题)。我见过其他库,可用于以编程方式将 Java 编译为字节码。并感谢提醒您在使用这些工具时调查可能的许可证违规行为。