Fast and Extensible Hybrid Embeddings with Micros
This program is tentative and subject to change.
Macro embedding is a popular approach to defining extensible shallow embeddings of object languages in Scheme-like host languages. While macro embedding has even been shown to enable implementing extensible typed languages in systems like Racket, it comes at a cost: compile-time performance. In this paper, we revisit micros-syntax to intermediate representation (IR) transformers, rather than source syntax to source syntax transformers (macros). Micro embedding enables stopping at an IR, producing a deep embedding and enabling high performance compile-time functions over an efficient IR, before shallowly embedding the IR back into source syntax. Combining micros with several design patterns to enable the IR and functions over it to be extensible, we achieve extensible hybrid embedding of statically typed languages with significantly improved compile-time compared to macro-embedding approaches. We describe our design patterns and propose new abstractions packaging these patterns.
This program is tentative and subject to change.
Thu 16 OctDisplayed time zone: Perth change
13:45 - 15:30 | |||
13:45 25mTalk | Rewriting Macros on the Fly: A Modular Approach to Administrative Reduction During Expansion Scheme Paul Downen University of Massachusetts at Lowell | ||
14:10 25mTalk | Fast and Extensible Hybrid Embeddings with Micros Scheme | ||
14:35 20mTalk | Hygienic Macros via Staged Environment Machines (Position Paper) Scheme Yuito Murase Kyoto University, Japan | ||
14:55 25mTalk | Checking a Denotational Semantics of Scheme in Agda Scheme Peter D. Mosses Swansea University and Delft University of Technology |