Mathias Ricken

Mathias Ricken




Curriculum Vitae (pdf)
(doc)  (txt)  (embedded)

Resume (pdf)
(doc)  (txt)  (embedded)


External linkArchive on A Concurrent Affair

RSSPublication RSS Feed

Research Projects

External linkConcutest: 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


Geometry Synthesis by Analogy


External linkCOMP 410 - Software Engineering Methodology

Past Classes

Work Blog

External linkA Concurrent Affair

RSSBlog RSS Feed

Personal Website


External linkMy researchr
External linkMy
External linkPapers
External linkTalks
External linkTeaching


      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.