Return to: U of M Home

Gold University of Minnesota M. Skip
    to main cozntent.University of Minnesota. Home page.
 

  ableJ Extensible Compiler for Java 1.4

What's inside.

MELT Home

People

Publications

Software
- Silver
- ableJ - Java 1.4

Melt public wiki
   

Department of Computer Science and Engineering

University of Minnesota Software Engineering Center

Institute of Technology

University of Minnesota

 
 

ableJ - an Extensible Compiler for Java 1.4

[ Info | Downloads | User Manual | Publications | Bugzilla site ]

We have used Silver to develop an attribute-grammar based extensible compiler framework for Java 1.4, called ableJ. ableJ includes specifications of Java 1.4's concrete syntax and abstract syntax as well as some limited semantic analyses such as type-checking.

ableJ also includes a collection of extensions to Java 1.4 that make use of the facilities provided in Silver to extend Java 1.4's syntax with various new constructs, both domain-specific and general purpose. Silver allows semantic analyses to be specified on these new construct. Please see below for the extensions currently included in ableJ.

For a more detailed description of ableJ and its extensible features, please see our ECOOP 2007 paper "Attribute grammar based language extensions for Java" available here.

An "alpha-release" of our extensible Java framework is available for download, along with installation instructions. The complete implementation is not yet available - we're putting the finishing touches on it and doing more rigorous testing than was done on this alpha-release version. We anticipate a stable version of Java 1.4 to be available in July 2007.

The current implementation covers nearly all of Java 1.4. It covers all of its syntax. The parser is a slightly modified version of the public domain Java 1.4 grammar released with the Antlr 2.7.7 distribution. The implementation includes semantic analyses for statements, classes, interfaces and certain expressions.

The download also contains extensions to our Java grammar including, among others, extensions to
  • add Java 1.5's extended-for construct that allows for interations over Collection objects and arrays,
  • add constructs to add syntax for "condition tables", a convenient way to specify complicated conditional statements, used in synchronous languages,
  • constructs to specify and execute SQL queries directly within Java, with compile time syntax and type checking, and
  • a computational geometry extension that implements randomized linear perturbation.
We also include preliminary version of extensions to perform autoboxing and add complex number types to java 1.4. These extensions will be updated and newer ones added. Thus, any language extensions designed to extend this specification of Java may not work with future specifications.

For more information on adding extensions, please see our ECOOP 2007 paper and our LCSD 2006 paper "Adding Syntax and Static Analysis to Libraries via Extensible Compilers and Language Extensions" which describes in more detail the language extension that embeds SQL into our extensible specification of Java. This extension statically type-checks SQL queries.

 
The University of Minnesota is an equal opportunity educator and employer.