0

JetBrains MPS 是否提供可在其他应用程序中使用的 JIT 编译器?我们有一个带有脚本语言的遗留应用程序。因为我们的客户很难使用这种脚本语言,所以我们想为他们提供一种新的 DSL。

所以问题是:我们是否可以使用 Jetbrains MPS 来设计我们的 DSL,然后在用户在我们的软件中编写脚本之后使用 MPS JITCompiler/Translator 将其转换为 Java 或其他任何内容?

4

1 回答 1

1

如果您的意思是 JITCompiler/Translator,让您的 DSL 从中生成 Java,然后运行已编译的 Java 代码,是的,这是可能的。但这将是一个额外的转换步骤,例如:编写代码 -> 生成/编译 -> 运行(生成的 jar)。

如果您的意思是在不先进行转换步骤的情况下解释模型,那么答案是,不是开箱即用。到目前为止,我们已经为 MPS 构建了一个解释器框架,并用它构建了两个解释器。一种用于 Java,另一种用于 C。尽管重点不在于那里的性能。我们将它用于公式或 REPL 之类的小计算。它目前正在进行中,但工作得很好。您可以在此处查找 Interpreter 并找到更多信息以及在哪里查找。作为一个中期项目,我们可能希望将此解释器定义与Graal编译器集成,然后它更像是一个 JITCompiler,而不仅仅是一个解释器。

于 2015-08-24T20:15:21.020 回答