Mathias Ricken Home Bio CV/Resume Curriculum Vitae (pdf) (doc) (txt) (embedded) Resume (pdf) (doc) (txt) (embedded) Archive on A Concurrent Affair Concutest: A Framework for Testing Concurrent Programs Mint: Multi-stage Programming for Java xajavac: Extended Annotations-Enabled javac LAPT-javac: Local Variable-Enabled javac DrJava IDE Programming for Change: The Temperature Calculator Object-Oriented Design Festival Design Patterns for Parsing Assignments for an Objects-First Curriculum Design Patterns for Marine Biology Simulation Geometry Synthesis DrC# IDE Geometry Synthesis by Analogy COMP 410 - Software Engineering Methodology Past Classes Blog A Concurrent Affair My Academia.edu Papers Talks Teaching |
Mint: Java Multi-stage Programming
In the spring of 2009, I started working with Dr. Walid Taha's research group on a multi-stage programming extension of Java. We developed an implementation, called Mint, wrote a technical report and published a paper (PDF) at PLDI 2010. 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 difcult to combine with imperative features, which are prevalent in mainstream languages. The central difculty 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 system and the performance gains attainable by using MSP in this setting. Westbrook, E., M. Ricken, J. Inoue, Y. Yao, T. Abdelatif, and W. Taha In Proceedings of the 2010 ACM SIGPLAN Conference on Programming Language Design and Implementation, ACM 2010 Publications and the implementation are available below:
Here are some useful resources for Mint: YourKit is kindly supporting open source projects with its full-featured Java Profiler. YourKit, LLC is the creator of innovative and intelligent tools for profiling Java and .NET applications. Take a look at YourKit's leading software products: YourKit Java Profiler and YourKit .NET Profiler. |
|||||
http://www.cs.rice.edu/research/mint/index.shtml Copyright © 2002-2011 by Mathias Ricken. All rights reserved. |