Advanced

JavaRAG: A Java Library for Reference Attribute Grammars

Fors, Niklas LU ; Cedersjö, Gustav LU and Hedin, Görel LU (2015) ACM International Conference on Modularity In Proceedings of the International Conference on Modularity p.55-67
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 JastAdd and Kiama which are other RAG-based tools. Our JavaRAG library is open source and is used in a compiler for the dataflow language CAL.
Please use this url to cite or link to this publication:
author
organization
publishing date
type
Chapter in Book/Report/Conference proceeding
publication status
published
subject
in
Proceedings of the International Conference on Modularity
pages
55 - 67
publisher
ACM
conference name
ACM International Conference on Modularity
external identifiers
  • scopus:84986537205
ISBN
978-1-4503-3249-1
DOI
10.1145/2724525.2724572
language
English
LU publication?
yes
id
d286e640-a232-4650-997f-c39776c1ae8e (old id 5257043)
date added to LUP
2015-03-31 13:16:01
date last changed
2017-04-23 04:41:40
@inproceedings{d286e640-a232-4650-997f-c39776c1ae8e,
  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 JastAdd and Kiama which are other RAG-based tools. Our JavaRAG library is open source and is used in a compiler for the dataflow language CAL.},
  author       = {Fors, Niklas and Cedersjö, Gustav and Hedin, Görel},
  booktitle    = {Proceedings of the International Conference on Modularity},
  isbn         = {978-1-4503-3249-1 },
  language     = {eng},
  pages        = {55--67},
  publisher    = {ACM},
  title        = {JavaRAG: A Java Library for Reference Attribute Grammars},
  url          = {http://dx.doi.org/10.1145/2724525.2724572},
  year         = {2015},
}