可以在另一个应用程序中使用JetBrains MPS或其中的一部分作为JIT编译器/转换器吗?

时间:2015-08-24 14:36:54

标签: dsl mps

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

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

1 个答案:

答案 0 :(得分:1)

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

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