Affiliation:
1. University of Oxford, Oxford, United Kngdm
2. Lund University, Lund, Sweden
Abstract
The JastAdd Extensible Java Compiler is a high quality Java compiler that is easy to extend in order to build static analysis tools for Java, and to extend Java with new language constructs. It is built modularly, with a Java 1.4 compiler that is extended to a Java 5 compiler. Example applications that are built as extensions include an alternative backend that generates Jimple, an extension of Java with AspectJ constructs, and the implementation of a pluggable type system for non-null checking and inferenc.
The system is implemented using JastAdd, a declarative Java-like language. We describe the compiler architecture, the major design ideas for building and extending the compiler, in particular, for dealing with complex extensions that affect name and type analysis. 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.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Reference38 articles.
1. ajc in the AspectJ project 1.5.0 2007. http://www.eclipse.org/aspectj/. ajc in the AspectJ project 1.5.0 2007. http://www.eclipse.org/aspectj/.
2. The DaCapo benchmarks
Cited by
52 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Zipper-based embedding of strategic attribute grammars;Journal of Systems and Software;2024-05
2. Property probes: Live exploration of program analysis results;Journal of Systems and Software;2024-05
3. Efficient Embedding of Strategic Attribute Grammars via Memoization;Proceedings of the 2023 ACM SIGPLAN International Workshop on Partial Evaluation and Program Manipulation;2023-01-15
4. Property Probes: Source Code Based Exploration of Program Analysis Results;Proceedings of the 15th ACM SIGPLAN International Conference on Software Language Engineering;2022-11-29
5. Zipping Strategies and Attribute Grammars;Functional and Logic Programming;2022