首页> 外文期刊>The Journal of object technology >Automatic generation of Truffle-based interpreters for Domain-Specific Languages
【24h】

Automatic generation of Truffle-based interpreters for Domain-Specific Languages

机译:自动生成域特定语言的基于Truffle的解释器

获取原文
           

摘要

Numerous language workbenches have been proposed over the past decade to ease the definition of Domain-Specific Languages (DSLs). Language workbenches enable DSL designers to specify DSLs using high- level metalanguages, and to automatically generate their implementation (e.g., parsers, interpreters) and tool support (e.g., editors, debuggers). However, little attention has been given to the performance of the resulting interpreters. In many domains where performance is key (e.g., scientific and high-performance computing), this forces DSL designers to handcraft ad-hoc optimizations in interpreter implementations, or lose compatibility with tool support. In this paper, we propose to systematically exploit domain-specific information of DSL specifications to derive optimized Truffle-based language interpreters executed over the GraalVM. Those optimizations are provided at no extra cost for the DSL designer. They are of course not as efficient as handcrafted optimizations, but do not require extra time or knowledge from the DSL designer (which industrial DSL designers often lack). We implement our approach on top of the Eclipse Modeling Framework (EMF) by complementing its existing compilation chain with Truffle-specific information, which drives GraalVM to benefit from optimized just-in-time compilation. A key benefit of our approach is that it leverages existing DSL specifications and does not require additional information from DSL designers who remain oblivious of Truffle’s low-level intricacies and JIT optimizations in general while staying compatible with tool support. We evaluate our approach using a representative set of four DSLs and eight conforming programs. Compared to the standard interpreters generated by EMF running on GraalVM, we observe an average speed-up of x1.14, ranging from x1.07 to x1.26. Although the benefits vary slightly from one DSL or program to another, we conclude that our approach yields substantial performance gains while remaining non-intrusive of EMF abstractions.
机译:在过去十年中提出了许多语言工作台,以简化特定于域的语言(DSL)的定义。语言Workbenches使DSL设计人员能够使用高级Metalanguages指定DSL,并自动生成其实现(例如,解析器,解释器)和工具支持(例如,编辑器,调试器)。但是,已经对所产生的口译员的表现很少关注。在性能是关键的许多域中(例如,科学和高性能计算),这会强制DSL设计人员在解释器实现中手动Ad-hoc优化,或者与工具支持兼容。在本文中,我们建议系统地利用DSL规范的域特定信息,以导出在GRAALVM上执行的基于妥善的基于Truffle的语言解释器。这些优化是为DSL Designer提供的额外费用。它们当然不是作为手工优化的效率,但不需要从DSL设计者(工业DSL设计师经常缺乏的额外时间或知识)。通过将其现有的编译链与特定于Truffle的信息补充,我们在Eclipse建模框架(EMF)之上实现了我们的方法,该信息驱动Graalvm从优化的立交记中受益。我们的方法的一个主要好处是它利用现有的DSL规范,并且不需要来自DSL设计人员的其他信息,他们通常在兼容工具支持时遵循兼容Truffle的低级复杂和JIT优化。我们使用代表性的四个DSL和八个符合程序评估我们的方法。与EMF生成的标准口译员相比在GRAALVM上运行,我们观察到X1.14的平均加速,范围从x1.07到x1.26。虽然益处与另一个DSL或计划略有不同,但我们得出结论,我们的方法在剩余的EMF抽象中仍然存在实质性提高。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号