Agile and Efï¬cient Domain-Speciï¬c Languages using Multi-stage
Programming in Java Mint
(PowerPoint, PDF, view embedded)
Mathias Ricken, Edwin Westbrook and Walid Taha
Where: Rice University Computer Science Department, COMP 600 Graduate Seminar
When: September 20, 2010
Domain-specific languages (DSLs) are a powerful productivity tool
because they allow domain experts, who are not necessarily programming
experts, to quickly develop programs. DSL implementations have unique
constraints for programming languages because they must be efficient,
in order to ensure high productivity, but they must also be agile, in
order to meet the rapidly changing demands of their domains. In this
tutorial we show how multi-stage programming (MSP) can be used to
build staged interpreters, which combine the agility of interpreters
with the efficiency of compilers. The tutorial is conducted in Java
Mint, an multi-stage Java based on recent work incorporating MSP into
imperative object-oriented languages. In the first half of the
tutorial, we introduce MSP by demonstrating how to write a staged
interpreter for a number of basic language constructs, such as
recursive functions, conditionals, and let expressions. In the second
half, we extend our staged interpreter to take advantage of several
well-known compiler optimizations, including type inference, constant
folding, and static parallel loop scheduling. We highlight the
opportunities afforded by using MSP with object-oriented design to
quickly create efficient DSL implementations.
It is an early practice talk for a tutorial to be held at GPCE’10.