Mathias Ricken

Mathias Ricken


Home

Bio


CV/Resume


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

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


Publications


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

DrC# IDE

Geometry Synthesis by Analogy

Teaching


External linkCOMP 410 - Software Engineering Methodology

Past Classes

Blog


External linkA Concurrent Affair


External linkMy Academia.edu
External linkPapers
External linkTalks
External linkTeaching

      Mint: Java Multi-stage Programming

Contents

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.


Abstract

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


Download

Publications and the implementation are available below:


Resources

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.