Reflections on LMS: Exploring Front-End Alternatives
Metaprogramming techniques to generate code at runtime in a general-purpose meta-language have seen a surge of interest in recent years, driven by the widening performance gap between high-level languages and emerging hardware platforms. In the context of Scala, the LMS (Lightweight Modular Staging) framework has contributed to "abstraction without regret''–high-level programming without performance penalty–in a number of challenging domains, through runtime code generation and embedded compiler pipelines based on stacks of DSLs.
Based on this experience, this paper crystallizes some of the design decisions of LMS and discusses potential alternatives, which maintain the underlying spirit but differ in implementation choices: specifically, strategies for realizing more flexible front-end embeddings using type classes instead of higher-kinded types, and strategies for type-safe metaprogramming with untyped intermediate representations.
Tiark Rompf is an assistant professor at Purdue University. His work focuses on runtime code generation, advanced compiler technology, and associated language support. From 2008 to 2014 he was a member of Martin Odersky’s Scala team at EPFL where he developed the LMS compiler framework and made various contributions to the Scala language and toolchain (delimited continuations, efficient immutable data structures, compiler speedups, type system work).
Sun 30 Oct
|13:30 - 13:55|
|DOI File Attached|
|13:55 - 14:20|
Tiark RompfPurdue University, USADOI
|14:20 - 14:45|
Markus Hauckcodecentric AG, Savvas SavvidesPurdue University, Patrick EugsterPurdue University, Mira MeziniTU Darmstadt, Guido SalvaneschiTU Darmstadt, GermanyDOI Pre-print Media Attached
|14:45 - 15:10|