16th European Conference on Object-Oriented Programming
University of Málaga, Spain
June 10-14, 2002
Technical programme > posters
General Information
Call for Contributions
Technical Programme
Useful Information
Social Programme

<< Site map >>
<< History file >>

Ecoop 2002 is organized in cooperation with:
Important dates
Oct 01
Nov 01
Dec 01
Jan 02
Feb 02
Apr 02
May 02
Jun 02

You are the visitor number

from 4th October 2001.


Poster #5 - Extensible Java Pre-Processor EPP


Yuuji Ichisugi
Information Technology Institute
National Institute of Advanced Industrial Science and Technology (AIST)


We are developing an extensible Java pre-processor, EPP. EPP is a framework of Java source code processing systems. The behavior of EPP can be extended by adding extension modules, EPP plug-ins. EPP has an extensible recursive descent parser and an extensible type checking mechanism. A great variety of new language features can be easily introduced by implementing macro expansion functions for new language constructs. Independently developed plug-ins can be used in a program simultaneously. EPP can be used also as a platform for source code processing systems such as metrics tools and refactoring tools.

A wide variety of language extensions have been implemented, including a data-parallel language, thread migration, parameterized types, metrics tool and the difference-based module mechanism. (The paper describing difference-based modules are accepted by ECOOP2002.)

EPP plug-ins are written in an extended Java language. The extensions for EPP plug-ins themselves are implemented using EPP. The language extensions support a kind of mixin-based programming, which enhances extensibility and composability of applications. In
addition, some useful features such as symbols and backquote macros as in Lisp have been introduced into Java language in order to support easy implementation of macros.

The most important application of EPP is the MixJuice language, which is an enhancement of Java language with difference-based module mechanism. The module mechanism enables separation of crosscutting concerns. We are currently rewriting EPP itself using the MixJuice language, in order to enhance extensibility, performance and safety.

EPP is distributed from the web page with source-code and sample plug-ins.

Additional Information


Poster #5 - Extensible Java Pre-Processor EPP
Last modified on May 13, 2002
Maintained by webmaster@2002.ecoop.org