- A Concurrent Affair - https://www.concurrentaffair.org -

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

Mint: Java Multi-stage Programming Using Weak Separability [1]

2010 ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2010 [2])

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.

[3] [4]Share [5]
2 Comments (Open | Close)

2 Comments To "Paper: Mint: Java Multi-stage Programming Using Weak Separability"

#1 Pingback By A Concurrent Affair » Blog Archive » Camera-Ready Version of PLDI Paper Submitted On March 24, 2010 @ 17:20

[…] This afternoon, I submitted the final camera-ready version of our Mint paper that was accepted to PLDI 2010, Mint: Java Multi-stage Programming Using Weak Separability. […]

#2 Pingback By String Pool Interning Saves the Weakly Separable Day | A Concurrent Affair On August 31, 2010 @ 01:07

[…] itself. That’s why I used the == operator in the initial Lint interpreter I wrote for the PLDI 2010 paper: 12345678910111213public static separable Env ext(final Env env,         […]