【24h】

Improving the Performance of the Paisley Pattern-Matching EDSL by Staged Combinatorial Compilation

机译:通过分阶段组合编译提高佩斯利模式匹配EDSL的性能

获取原文

摘要

Paisley is a declarative lightweight embedded domain-specific language for expressive, non-deterministic, non-invasive pattern matching on arbitrary data structures in Java applications. As such, it comes as a pure Java library of pattern-matching combinators and corresponding programming idioms. While the combinators support a basic form of self-optimization based on heuristic metadata, overall performance is limited by the distributed and compositional implementation that impedes non-local code optimization. In this paper, we describe a technique for improving the performance of Paisley transparently, without compromising the flexible and extensible combinatorial design. By means of distributed bytecode generation, dynamic class loading and just-in-time compilation of patterns, the run-time overhead of the combinatorial approach can be reduced significantly, without requiring any technology other than a standard Java virtual machine and our LLJava bytecode framework. We evaluate the impact by comparison to earlier benchmarking results on interpreted Paisley. The key ideas of our compilation technique are fairly general, and apply in principle to any kind of combinator language running on any jit-compiling host.
机译:佩斯利是一个陈述轻量级嵌入域的域 - 特定于Java应用程序中任意数据结构的表现意义的,非确定性的非侵入性模式的特定语言。因此,它是一种模式匹配组合器和相应的编程成语的纯Java库。虽然组合者支持基于启发式元数据的基本形式的自我优化,但总体性能受到阻碍非本地代码优化的分布式和组成实现的限制。在本文中,我们描述了一种用于透明地提高佩斯利性能的技术,而不会影响柔性和可伸缩的组合设计。通过分布式字节码生成,动态类加载和模式的立即编译,可以显着减少组合方法的运行时开销,而无需任何技术除标准的Java虚拟机和我们的LLJava字节码框架之外的任何技术。我们通过对解释佩斯利的早期基准结果进行评估。我们的编译技术的关键思想是一般的,并原则上适用于任何JIT编译主机运行的任何类型的组合语言。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号