Note: ExtendJ was formerly known as JastAddJ, and most past publications use
the old name. In some cases ExtendJ is also referred to as the JastAdd frontend
This OOPSLA 2007 paper describes the basic architecture of ExtendJ:
- Torbjörn Ekman, Görel Hedin: The JastAdd Extensible Java Compiler. OOPSLA 2007: 1-18, Proceedings of the 22nd Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, October 2007, Montreal, Canada.
The development of the Java 7 extension is described in a Master's Thesis and
a later research paper:
- Jesper Öqvist: Implementation of Java 7 Features in an Extensible Compiler. Master's Thesis LU-CS-EX: 2012-13, Dept of Computer Science, Lund University, 2012.
- Jesper Öqvist, Görel Hedin: Extending the JastAdd extensible Java compiler to Java 7. PPPJ 2013:147-152, Proceedings of the 2013 International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools, September 2013, Stuttgart, Germany.
The development of the Java 8 module is documented in this Master's Thesis:
The following article describes an implementation of Multiplicities for Java,
as an ExtendJ Extension:
Research Using ExtendJ
The following research papers mention using ExtendJ (JastAddJ) to build analyses or
language features on top of Java:
- Tetsuo Kamina, Tomoyuki Aotani: Harmonizing Signals and Events with a Lightweight Extension to
Java (The Art, Science, and Engineering of Programming, 2018)
- Mohammad Reza Azadmanesh, Matthias Hauswirth: Concept-Driven Generation of Intuitive Explanations of Program Execution for a Visual Tutor. (Software Visualization, 2017)
- Sukyoung Ryu: ThisType for Object-Oriented Languages: From Theory to Practice. (ACM Transactions on Programming Languages and Systems, 2016)
- YungYu Zhuang, Shigeqru Chiba: Expanding Event Systems to Support Signals by Enabling the Automation of Handler Bindings. (Journal of Information Processing, 2016)
- Friedrich Steimann, Jörg Hagemann, Bastian Ulke: Computing repair alternatives for malformed programs using constraint attribute grammars. (OOPSLA, 2016)
- Vivek Kumar, Julian Dolby, Stephen M. Blackburn: Integrating Asynchronous Task Parallelism and Data-centric Atomicity. (PPPJ, 2016)
- Yusheng Weijiang, Shruthi Balakrishna, Jianqiao Liu, Milind Kulkarni: Tree dependence analysis. (PLDI, 2015)
- Eric Bodden, Éric Tanter, Milton Inostroza: Join point interfaces for safe and flexible decoupling of aspects. (ACM Transactions on Software Engineering and Methodology, 2014)