Publications:Mint : Java Multi-stage Programming Using Weak Separability

From CERES
Jump to: navigation, search

Do not edit this section

Keep all hand-made modifications below

Title Mint : Java Multi-stage Programming Using Weak Separability
Author Edwin Westbrook and Mathias Ricken and Jun Inoue and Yilong Yao and Tamer Abdelatif and Walid Taha
Year 2010
PublicationType Conference Paper
Journal
HostPublication PLDI '10 : proceedings of the 2010 ACM SIGPLAN Conference on Programming Language Design and Implementation : June 5-10, 2010, Toronto, Ontario, Canada
DOI http://dx.doi.org/10.1145/1806596.1806642
Conference ACM SIGPLAN 2010 Conference on Programming Language Design and Implementation, PLDI 2010, Toronto, Ontario, Canada, 5-10 June 2010
Diva url http://hh.diva-portal.org/smash/record.jsf?searchId=1&pid=diva2:396149
Abstract Multi-stage programming (MSP) provides a disciplined approach to run-time code generation. In the purely functional setting, it has been shown how MSP can be used to reduce the overhead of abstractions, allowing clean, maintainable code without paying performance penalties. Unfortunately, MSP is difficult to combine with imperative features, which are prevalent in mainstream languages. The central difficulty is scope extrusion, wherein free variables can inadvertently be moved outside the scopes of their binders. This paper proposes a new approach to combining MSP with imperative features that occupies a "sweet spot" in the design space in terms of how well useful MSP applications can be expressed and how easy it is for programmers to understand. The key insight is that escapes (or "anti-quotes") must be weakly separable from the rest of the code, i.e. the computational effects occurring inside an escape that are visible outside the escape are guaranteed to not contain code. To demonstrate the feasibility of this approach, we formalize a type system based on Lightweight Java which we prove sound, and we also provide an implementation, called Mint, to validate both the expressivity of the type system and the effect of staging on the performance of Java programs. © 2010 ACM.