Title
Reflections on LMS: exploring front-end alternatives.
Abstract
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.
Year
DOI
Venue
2016
10.1145/2998392.2998399
SCALA@SPLASH
Keywords
Field
DocType
Multi-stage programming,domain-specific languages,intermediate representation
Front and back ends,Domain-specific language,Metaprogramming,Programming language,Scala,Computer science,Compiler,Code generation,Theoretical computer science,Multi-stage programming,Modular design
Conference
Citations 
PageRank 
References 
1
0.35
34
Authors
1
Name
Order
Citations
PageRank
Tiark Rompf174345.86