Multi-stage Programming for Mainstream Languages

dc.contributor.authorAbdelatif, Tameren_US
dc.contributor.authorInoue, Junen_US
dc.contributor.authorRicken, Mathiasen_US
dc.contributor.authorTaha, Waliden_US
dc.contributor.authorWestbrook, Edwinen_US
dc.contributor.authorYao, Yilongen_US
dc.date.accessioned2017-08-02T22:03:06Zen_US
dc.date.available2017-08-02T22:03:06Zen_US
dc.date.issued2009-07-27en_US
dc.date.noteJuly 27, 2009en_US
dc.description.abstractMulti-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.en_US
dc.format.extent20 ppen_US
dc.identifier.citationAbdelatif, Tamer, Inoue, Jun, Ricken, Mathias, et al.. "Multi-stage Programming for Mainstream Languages." (2009) https://hdl.handle.net/1911/96376.en_US
dc.identifier.digitalTR09-2en_US
dc.identifier.urihttps://hdl.handle.net/1911/96376en_US
dc.language.isoengen_US
dc.rightsYou are granted permission for the noncommercial reproduction, distribution, display, and performance of this technical report in any format, but this permission is only for a period of forty-five (45) days from the most recent time that you verified that this technical report is still available from the Computer Science Department of Rice University under terms that include this permission. All other rights are reserved by the author(s).en_US
dc.titleMulti-stage Programming for Mainstream Languagesen_US
dc.typeTechnical reporten_US
dc.type.dcmiTexten_US
Files
Original bundle
Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
TR09-2.pdf
Size:
294.86 KB
Format:
Adobe Portable Document Format