paperbot · PL 论文追踪

RSS

Compiled, Extensible, Multi-language DSLs (Functional Pearl)

ICFP 8(ICFP)2024引用 7
Michael Ballantyne, Mitch Gamburg, Jason Hemann

尚未生成 AI 速览(可能缺少 API key 或等待下次运行补跑)。

原文摘要(Abstract)

Implementations of domain-specific languages should offer both extensibility and performance optimizations. With the new syntax-spec metalanguage in Racket, programmers can easily create DSL implementations that are both automatically macro-extensible and subject to conventional compiler optimizations. This pearl illustrates this approach through a new implementation of miniKanren, a widely used relational programming DSL. The miniKanren community has explored, in separate implementations, optimization techniques and a wide range of extensions. We demonstrate how our new miniKanren implementation with syntax-spec reconciles these features in a single implementation that comes with both an optimizing compiler and an extension mechanism. Furthermore, programmers using the new implementation benefit from the same seamless integration between Racket and miniKanren as in existing shallow embeddings.

链接与引用

DOI 原文 · PDF(开放获取) · DBLP

BibTeX
@article{BallantyneGH24,
  title = {Compiled, Extensible, Multi-language DSLs (Functional Pearl)},
  author = {Michael Ballantyne and Mitch Gamburg and Jason Hemann},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {8},
  number = {ICFP},
  year = {2024},
  doi = {10.1145/3674627}
}