Purdue University
Computer Science Colloquia
Mint: A Multi-stage Extension of Java
(PowerPoint, PDF, view embedded)
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.
Search
My Links
RSS Feeds
Categories
- Code Pranger (5)
- DrJava (179)
- Graduate School (26)
- Pictures (21)
- Publications (36)
- Ramblings (89)
- Research (388)
- Concurrent Unit Testing (287)
- Mint (60)
- OOP Book (7)
- xajavac (29)
- Teaching (21)
- Thesis (30)
- MS Thesis (30)
- Uncategorized (131)
Archives
- September 2010 (3)
- August 2010 (24)
- July 2010 (16)
- June 2010 (16)
- May 2010 (14)
- April 2010 (15)
- March 2010 (15)
- February 2010 (16)
- January 2010 (15)
- December 2009 (6)
- November 2009 (16)
- October 2009 (20)
- September 2009 (25)
- August 2009 (13)
- July 2009 (2)
- June 2009 (1)
- May 2009 (3)
- April 2009 (2)
- March 2009 (3)
- February 2009 (3)
- December 2008 (2)
- November 2008 (6)
- October 2008 (16)
- September 2008 (7)
- August 2008 (10)
- July 2008 (4)
- June 2008 (4)
- May 2008 (7)
- April 2008 (3)
- March 2008 (7)
- February 2008 (11)
- January 2008 (3)
- December 2007 (5)
- November 2007 (15)
- October 2007 (5)
- August 2007 (2)
- July 2007 (19)
- June 2007 (8)
- May 2007 (9)
- April 2007 (18)
- March 2007 (23)
- February 2007 (5)
- January 2007 (12)
- December 2006 (5)
- November 2006 (17)
- October 2006 (18)
- September 2006 (22)
- August 2006 (21)
- July 2006 (15)
- June 2006 (1)
- May 2006 (4)
- April 2006 (3)
- March 2006 (1)
- February 2006 (1)
- January 2006 (26)
- December 2005 (6)
- November 2005 (6)
- October 2005 (2)
- September 2005 (7)
- August 2005 (20)
- July 2005 (21)
- June 2005 (23)
- February 2005 (1)
- December 2004 (1)
- November 2004 (2)
- October 2004 (2)
- September 2004 (1)
- August 2004 (2)
- June 2004 (3)
- March 2004 (1)
- September 2003 (1)
Blogroll
Concutest
JavaPLT
JSR Watchlist
- JSR 014 (Generics)
- JSR 047 (Logging)
- JSR 108 (Units)
- JSR 133 (Memory Model)
- JSR 166 (Concurrency Utilities)
- JSR 175 (Annotations)
- JSR 199 (javac API)
- JSR 202 (Class File Update)
- JSR 250 (Common Annotations)
- JSR 260 (Javadoc Update)
- JSR 269 (Annotation Processing)
- JSR 269 Article
- JSR 290 (XML UI)
- JSR 296 (Swing)
- JSR 305 (Defect Detection Annotations)
- JSR 305 Article
- JSR 308 (Annotations on Types)
- JSR 901 (JLS)
- JSR 924 (JVM Specs)
- Pure Danger Tech: Java 7
More Links
My Links
Meta


Pingback: A Concurrent Affair » Blog Archive » Happy About Purdue Talk