Proceedings of the 14th International Conference on Modularity 2015
DOI: 10.1145/2724525.2724572
|View full text |Cite
|
Sign up to set email alerts
|

JavaRAG: a Java library for reference attribute grammars

Abstract: Reference attribute grammars (RAGs) is a powerful formalism for developing modular extensible compilers and program analysis tools. This paper presents JavaRAG, an implementation of RAGs as a Java library that is independent of the abstract syntax tree structure. This makes it possible to extend legacy compilers implemented in Java with RAG computations. We have evaluated the approach by integrating with EMF, ANTLR, and hand-built abstract syntax trees, and we compare performance and specification size with Ja… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1

Citation Types

0
3
0

Year Published

2016
2016
2019
2019

Publication Types

Select...
3
1
1

Relationship

1
4

Authors

Journals

citations
Cited by 5 publications
(3 citation statements)
references
References 35 publications
(42 reference statements)
0
3
0
Order By: Relevance
“…In addition, JastEMF does not have support for incremental evaluation. JavaRAG [8] is another related approach allowing RAGs to be added on top of any spanning tree, as long as a traversal API can be implemented. JavaRAG has been used to add a RAG to an EMF metamodel.…”
Section: Related Workmentioning
confidence: 99%
See 1 more Smart Citation
“…In addition, JastEMF does not have support for incremental evaluation. JavaRAG [8] is another related approach allowing RAGs to be added on top of any spanning tree, as long as a traversal API can be implemented. JavaRAG has been used to add a RAG to an EMF metamodel.…”
Section: Related Workmentioning
confidence: 99%
“…To approach continuous evaluation, researchers recently applied Reference Attribute Grammars (RAGs) [14] to encode and validate models, e.g., [6][7][8], because RAG systems offer mechanisms to perform an incremental analysis efficiently using dynamic dependency tracking [35]. Although RAG systems can efficiently rewrite and re-evaluate complex, large tree structures with derived information, including references, there exists a fundamental semantic mismatch between models, generally represented as graphs, and RAG trees.…”
Section: Introductionmentioning
confidence: 99%
“…Attribute grammars are a well-established formalism for realizing computations on syntax trees [21,22], and implementations are available for various programming languages, see, e.g. [30,29,13]. A fundamental question for any such specification formalism is whether two specifications are semantically equivalent.…”
Section: Introductionmentioning
confidence: 99%