The JastAdd system - modular extensible compiler construction

The JastAdd system enables modular specifications of extensible compiler tools and languages. Java has been extended with the Rewritable Circular Reference Attributed Grammars formalism that supports modularization and extensibility through several synergistic mechanisms. Object-orientation and static aspect-oriented programming are combined with declarative attributes and context-dependent rewrites to allow highly modular specifications. The techniques have been verified by implementing a full Java 1.4 compiler with modular extensions for non-null types and Java 5 features.

[1]  William M. Waite,et al.  Modularity and reusability in attribute grammars , 1994, Acta Informatica.

[2]  Anthony M. Sloane Eli: translator construction made easy , 2003 .

[3]  Görel Hedin,et al.  Circular reference attributed grammars - their evaluation and applications , 2003, Sci. Comput. Program..

[4]  Görel Hedin,et al.  An Object-Oriented Notation for Attribute Grammars , 1989, European Conference on Object-Oriented Programming.

[5]  James R. Cordy,et al.  The TXL source transformation language , 2006, Sci. Comput. Program..

[6]  S. Doaitse Swierstra,et al.  Higher order attribute grammars , 1989, PLDI '89.

[7]  Torbjörn Ekman,et al.  Implementing Java Compilers Using ReRAGs , 2004, Nord. J. Comput..

[8]  Görel Hedin,et al.  Reference Attributed Grammars , 2000, Informatica.

[9]  Eelco Visser,et al.  Stratego/XT 0.16: components for transformation systems , 2006, PEPM '06.

[10]  John Boyland,et al.  Descriptional Composition of Compiler Components , 1996 .

[11]  John Tang Boyland,et al.  Remote attribute grammars , 2005, JACM.

[12]  Görel Hedin,et al.  JastAdd--an aspect-oriented compiler construction system , 2003, Sci. Comput. Program..

[13]  K. Rustan M. Leino,et al.  Declaring and checking non-null types in an object-oriented language , 2003, OOPSLA.

[14]  Kai Koskimies Object-Orientation in Attribute Grammars , 1991, Attribute Grammars, Applications and Systems.

[15]  Eelco Visser,et al.  Composing Source-to-Source Data-Flow Transformations with Rewriting Strategies and Dependent Dynamic Rewrite Rules , 2005, CC.

[16]  Gary T. Leavens,et al.  MultiJava: modular open classes and symmetric multiple dispatch for Java , 2000, OOPSLA '00.

[17]  Torbjörn Ekman,et al.  Extensible Compiler Construction , 2006 .

[18]  Ralf Lämmel,et al.  Generative and Transformational Techniques in Software Engineering, International Summer School, GTTSE 2005, Braga, Portugal, July 4-8, 2005. Revised Papers , 2006, GTTSE.

[19]  Rodney Farrow Automatic generation of fixed-point-finding evaluators for circular, but well-defined, attribute grammars , 1986, SIGPLAN '86.

[20]  William G. Griswold,et al.  An Overview of AspectJ , 2001, ECOOP.

[21]  Borivoj Melichar,et al.  Proceedings on Attribute Grammars, Applications and Systems , 1991 .

[22]  Torbjörn Ekman,et al.  Rewritable Reference Attributed Grammars , 2004, ECOOP.

[23]  Torbjörn Ekman,et al.  Modular Name Analysis for Java Using JastAdd , 2005, GTTSE.

[24]  Arnd Poetzsch-Heffter Prototyping realistic programming languages based on formal specifications , 1997, Acta Informatica.

[25]  Eric Van Wyk,et al.  Forwarding in Attribute Grammars for Modular Language Design , 2002, CC.

[26]  Joao Paulo Saraiva,et al.  Purely Functional Implementation of Attribute Grammars , 1999 .

[27]  Michael R. Clarkson,et al.  Polyglot: An Extensible Compiler Framework for Java , 2003, CC.

[28]  Donald E. Knuth,et al.  Semantics of context-free languages , 1968, Mathematical systems theory.