Skip Navigation

Colloquium Details

The JastAdd System - modular extensible language processing tools

Author:Torbjörn Ekman Oxford University
Date:January 17, 2008
Time:15:30
Location:220 Deschutes
Host:Yannis Smaragdakis

Abstract

JastAdd is a meta-compiler system for building language processing tools, e.g., compilers, refactoring tools, metric tools, consistency checkers, etc. In this talk we present the JastAdd Extensible Java Compiler which is a high quality Java compiler that is easy to extend with new language features and additional analyses. Example applications that are built as extensions include an extension of Java with AspectJ constructs, the Chidamber and Kemerer object-oriented metrics suite, framework specific coding convention checking, and the implementation of a pluggable type system for non-null checking and inference. The compiler is itself built modularly, with a Java 1.4 compiler that is extended to a Java 5 compiler.

The system is implemented using JastAdd, a declarative Java-like language. We give an overview of the compiler architecture, the the major design ideas that enable extensible language processing tools, in particular, some challenges in dealing with complex extensions that affect name and type analysis. We also demonstrate how the same mechanisms that enable extensible compiler construction can be used to provide extensible integrated development environments by integrating the generated tools in Eclipse.

Our extensible compiler compares very favorably concerning quality, speed and size with other extensible Java compiler frameworks. It also compares favorably in quality and size compared with traditional non-extensible Java compilers, and it runs within a factor of three compared to javac.

Biography

Torbjörn Ekman is a Research Fellow at the Computing Laboratory at Oxford University, United Kingdom. He received a PhD from Lund University, Sweden in 2006. His research interests include extensible compilers, scriptable refactorings, domain-specific languages, and aspect oriented programming. He can be reached at torbjorn@comlab.ox.ac.uk.