Curriculum Vitae (pdf)
(doc) (txt) (embedded)
(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
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 by Analogy
COMP 410 - Software Engineering Methodology
A Concurrent Affair
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.
Copyright © 2002-2011 by Mathias Ricken. All rights reserved.