Proceedings of the 2013 International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machi 2013
DOI: 10.1145/2500828.2500843
|View full text |Cite
|
Sign up to set email alerts
|

Extending the JastAdd extensible Java compiler to Java 7

Abstract: JastAddJ is an extensible Java compiler, implemented using reference attribute grammars. It has been shown previously how the language constructs of Java 5, like generics, could be modularly added to the original JastAddJ compiler that supported Java 1.4.In this paper we discuss our experiences from extending JastAddJ to support Java 7. In particular, we discuss how the Try-WithResources statement and the Diamond operator could be implemented, and how efficient the resulting Java 7 compiler is regarding code s… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1

Citation Types

0
4
0

Year Published

2014
2014
2021
2021

Publication Types

Select...
5
4

Relationship

2
7

Authors

Journals

citations
Cited by 11 publications
(4 citation statements)
references
References 17 publications
0
4
0
Order By: Relevance
“…We implemented multiplicities for Java as described above as an extension to JastAddJ [13], an extensible Java compiler implemented using reference attribute grammars [12,20], and which currently supports Java 7 [30]. The extension comprises 44 source lines of JastAdd code for the syntax, 672 lines for the static semantics, and 1,180 lines for code generation.…”
Section: Methodsmentioning
confidence: 99%
“…We implemented multiplicities for Java as described above as an extension to JastAddJ [13], an extensible Java compiler implemented using reference attribute grammars [12,20], and which currently supports Java 7 [30]. The extension comprises 44 source lines of JastAdd code for the syntax, 672 lines for the static semantics, and 1,180 lines for code generation.…”
Section: Methodsmentioning
confidence: 99%
“…Attribute Grammars [Knuth 1968] are another declarative programming paradigm for program analysis. Tools such as AbleC [Kaminski et al 2017] for C and ExtendJ (formerly JastaddJ) for Java [Ekman and Hedin 2007;Öqvist and Hedin 2013], which underlies JavaDL, provide declarative features for computing attributes of AST nodes by synthesizing information from other AST nodes (including other attributes). Computations can be functional (in AbleC, based on Silver [Van Wyk et al 2010]) or imperative (in ExtendJ, based on JastAdd [Hedin and Magnusson 2003]).…”
Section: Related Workmentioning
confidence: 99%
“…We obtain information about the meaning of Java files by parsing both of the revisions we are comparing. We use JastAddJ [20] to parse the information into an AST. Once we have the AST we need to discover which AST nodes match which changes to the text in the source code.…”
Section: Overviewmentioning
confidence: 99%