PDF
This was posted a few hours ago to the Scala mailing list. I found A Gentle Introduction to Multi-stage Programming (Walid Taha, GPCE '04) inspiring, and immediately started to think about how similar techniques would be possible in Scala.
Abstract:
Software engineering demands generality and abstraction, performance demands specialization and concretization. Generative programming can provide both, but developing high-quality program generators takes a large effort, even if a multi-stage programming language is used.
We present lightweight modular staging, a library-based multistage programming approach that breaks with the tradition of syntactic quasi-quotation and instead uses only types to distinguish between binding times. Through extensive use of component technology, lightweight modular staging makes an optimizing compiler framework available at the library level, allowing programmers to tightly integrate domain-specific abstractions and optimizations into the generation process.
We argue that lightweight modular staging enables a form of language virtualization, i.e. allows to go from a pure-library embedded language to one that is practically equivalent to a standalone implementation with only modest effort.
Recent comments
16 weeks 8 hours ago
16 weeks 12 hours ago
16 weeks 12 hours ago
38 weeks 1 day ago
42 weeks 3 days ago
44 weeks 20 hours ago
44 weeks 20 hours ago
46 weeks 5 days ago
51 weeks 3 days ago
51 weeks 3 days ago