Compiled, Extensible, Multi-language DSLs (Functional Pearl)
This program is tentative and subject to change.
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.
This program is tentative and subject to change.
Wed 4 SepDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
10:30 - 12:00 | Meta-Programming, Staging, Generic Programming, Partial EvaluationICFP Papers and Events / JFP First Papers | ||
10:30 18mTalk | Staged Compilation with Module Functors ICFP Papers and Events Tsung-Ju Chiang University of Toronto, Jeremy Yallop University of Cambridge, Leo White Jane Street, Ningning Xie University of Toronto DOI Pre-print | ||
10:48 18mTalk | A Safe Low-level Language for Computer Algebra and its Formally Verified Compiler ICFP Papers and Events | ||
11:06 18mTalk | Deriving with Derivatives: Optimizing Incremental Fixpoints for Higher-Order Flow Analysis ICFP Papers and Events | ||
11:24 18mTalk | Compiled, Extensible, Multi-language DSLs (Functional Pearl) ICFP Papers and Events DOI Pre-print | ||
11:42 18mTalk | Knuth–Morris–Pratt illustrated (JFP Functional Pearls )JFP First Paper JFP First Papers Cameron Moy Northeastern University DOI |