Thursday, July 29, 2010

New Mint Release: r15665

I just created a new release of Mint and DrJava with Mint: July 28, 2010 (r15665). It's been over a year since we made the first version of Mint available! The latest release is, as always, available from the Mint implementation page:
Nothing really changed in the Mint language or in the way Mint is implemented; however, we moved our modified javac compiler into subpackages of the edu.rice.cs.mint.comp package, which means that the compiler is now invoked using the edu.rice.cs.mint.comp.com.sun.tools.javac.Main class.

The package and class names got a bit long, but by not using the same class names as Sun/Oracle, we can use our compiler together with other compilers or the original compiler if we want to, and there won't be any class name clashes.

Thursday, July 22, 2010

New Mint Release: r15637

I just created a new release of Mint and DrJava with Mint: July 22, 2010 (r15637). It's been over a year since we made the first version of Mint available! The latest release is, as always, available from the Mint implementation page:

The DrJava team released a third beta version of DrJava almost two weeks ago, drjava-beta-20100711-r5314.

The only thing that changed on the Mint language side is the implementation of the toString() method for brackets.

There have a been plenty of new features and bugfixes for DrJava, and they have been integrated into DrJava with Mint. In fact, DrJava with Mint includes a few bugfixes that are not yet in the latest beta of DrJava.

Sunday, July 11, 2010

New Version of DrJava with Mint: drjava-r5246-mint-r15405

The DrJava team released a third beta version of DrJava today, drjava-beta-20100711-r5314.

I therefore created a new release of DrJava with Mint: May 8, 2010 (r15405). The latest release is available from the Mint implementation page:
Nothing has changed on the Mint language side.

Thursday, April 15, 2010

New Mint Release: r15405

I just created a new release of Mint and DrJava with Mint: May 8, 2010 (r15405). The release is available from the Mint implementation page:

The DrJava team released a second beta version of DrJava yesterday, drjava-beta-20100507-r5246.

Nothing has changed on the Mint language side, but there have been minor changes in the Mint build process, and several examples have been added.

There have been plenty of new features and bugfixes for DrJava, and they have been integrated into DrJava with Mint. Most importantly, DrJava with Mint will now automatically select the Mint compiler on start-up.

Wednesday, March 24, 2010

Camera-Ready Version of PLDI Paper Submitted

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.

Eddy and I incorporated some more suggestions we had received from Julia Lawall and Sam Kamin, who sacrificed their valuable pre-OOPSLA submission time to proof-read our paper again. Thank you so much!

I'm glad that I could sign the copyright release form by myself, and that I didn't need to get the signatures of my five co-authors. That could have been a big headache: Walid is here, but I didn't see him today; Eddy and Jun are in Oxford; Yilong is an undergrad at Rice, and I haven't seen him in months; and Tamer is in Egypt. I enjoy signing other people's rights away.

All of that is done now. I think the paper got better still, and we even managed to stay six lines under the limit of twelve pages!

Camera-ready version: Mint: Java Multi-stage Programming Using Weak Separability (PDF)

Thursday, March 4, 2010

Mint Talk at Purdue

I'm visiting my friend Luke at Purdue after SIGCSE, and we arranged for me to give a talk to the CS department.

If you have the chance, come grill me on Monday, March 15, 2010 at 3:30 PM.

Computer Science Colloquia
Mint: A Multi-stage Extension of Java
Mr. Mathias Ricken
Rice University
LWSN 3102 A/B
Monday, March 15, 2010
3:30 p.m. - 4:30 p.m.

Complete Description:
Abstract:
Multi-stage programming (MSP) provides a safe way of generating code at run-time. In mostly-functional languages like MetaOCaml, this has been used to reduce the performance penalties of abstractions such as loops, recursion or interpretation. The main advantage of MSP compared to other techniques, such as string or LISP quotations, is that MSP guarantees type safety for the generated code statically, at the time the program is compiled.

Unfortunately, MSP is difficult to combine with imperative features found in most mainstream languages like Java. The central problem is "scope extrusion", which may accidentally move variables outside the scopes in which they are bound, leading to run-time errors in the generated code. This problem can be prevented if code in escapes (or "anti-quotes") is "weakly separable", i.e. the computational effects occurring inside an escape that are visible from the outside do not involve code.

We have formalized a type system, based on Lightweight Java, that uses weak separability to prevent scope extrusion, and we have proved that the type system is sound. We have also developed an implementation called Mint to demonstrate the expressivity of the type system and the performance benefits MSP can provide in an imperative setting. Since our implementation extends the Java language, our work is accessible to mainstream programmers.

This talk is based on work will be presented at the Conference on Programming Language Design and Implementation (PLDI 2010). More information is available at http://mint.concutest.org/


Bio:
Mathias Ricken is a doctoral candidate in the Programming Languages Team at Rice University and one of the principal developers of the DrJava integrated development environment. His research interests include concurrent programming, extending the Java language, and computer science education. He is the developer of the Concutest concurrent unit testing framework and has created various experimental extensions of Java to address, for instance, programming with meta-data. Currently, Mathias is contributing to Mint, a multi-stage extension of Java that allows safe and expressive statically typed program generation and specialization in an imperative language setting.

Faculty and students wishing to speak privately with Mr. Ricken should contact Jan Vitek at jv@cs.purdue.edu.


This is going to be exciting!

Monday, February 22, 2010

Mathias' Mint Talk

On February 8, Mathias gave a talk about Mint in the COMP 600 graduate seminar at Rice. The slides for "Mint: A Multi-stage Extension of Java" and the video recording are available now:

Slides (PDF)
Slides (PowerPoint)
Video Recording (on vimeo, requires Flash)

Abstract:

Multi-stage programming (MSP) provides a safe way of generating code at run-time. In mostly-functional languages like MetaOCaml, this has been used to reduce the performance penalties of abstractions such as loops, recursion or interpretation. The main advantage of MSP compared to other techniques, such as string or LISP quotations, is that MSP guarantees type safety for the generated code statically, at the time the program is compiled.

Unfortunately, MSP is difficult to combine with imperative features found in most mainstream languages like Java. The central problem is "scope extrusion", which may accidentally move variables outside the scopes in which they are bound, leading to run-time errors in the generated code. This problem can be prevented if code in escapes (or "anti-quotes") is "weakly separable", i.e. the computational effects occurring inside an escape that are visible from the outside do not involve code.

We have formalized a type system, based on Lightweight Java, that uses weak separability to prevent scope extrusion, and we have proved that the type system is sound. We have also developed an implementation called Mint to demonstrate the expressivity of the type system and the performance benefits MSP can provide in an imperative setting. Since our implementation extends the Java language, our work is accessible to mainstream programmers.

This talk is based on work done in collaboration with Edwin Westbrook, Jun Inoue, Yilong Yao, Tamer Abdelatif, and Walid Taha. A paper titled Mint: Java Multi-stage Programming Using Weak Separability has been accepted for publication in the Proceedings of the 2010 ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2010).