Skip to main content

Lund University Publications

LUND UNIVERSITY LIBRARIES

Automated selective caching for reference attribute grammars

Söderberg, Emma LU orcid and Hedin, Görel LU orcid (2011) SLE'10: 3rd International Conference on Software Language Engineering 6563. p.2-21
Abstract
Reference attribute grammars (RAGs) can be used to express semantics as super-imposed graphs on top of abstract syntax trees (ASTs). A RAG-based AST can be used as the in-memory model providing semantic information for software language tools such as compilers, refactoring tools, and meta-

modeling tools. RAG performance is based on dynamic attribute evaluation with caching. Caching all attributes gives optimal performance in the sense that each attribute is evaluated at most once. However, performance can be further improved by a selective caching strategy, avoiding caching overhead where it does not pay off. In this paper we present a profiling-based technique for automatically finding a good caching configuration. The technique... (More)
Reference attribute grammars (RAGs) can be used to express semantics as super-imposed graphs on top of abstract syntax trees (ASTs). A RAG-based AST can be used as the in-memory model providing semantic information for software language tools such as compilers, refactoring tools, and meta-

modeling tools. RAG performance is based on dynamic attribute evaluation with caching. Caching all attributes gives optimal performance in the sense that each attribute is evaluated at most once. However, performance can be further improved by a selective caching strategy, avoiding caching overhead where it does not pay off. In this paper we present a profiling-based technique for automatically finding a good caching configuration. The technique has been evaluated on a generated Java compiler, compiling programs from the Jacks test suite and the DaCapo benchmark suite. (Less)
Please use this url to cite or link to this publication:
author
and
organization
publishing date
type
Chapter in Book/Report/Conference proceeding
publication status
published
subject
host publication
Lecture Notes in Computer Science
editor
Malloy, Brian ; Staab, Steffen and van den Brand, Mark
volume
6563
pages
2 - 21
publisher
Springer
conference name
SLE'10: 3rd International Conference on Software Language Engineering
conference dates
2010-10-12
external identifiers
  • wos:000296827000002
  • scopus:79952265753
ISBN
978-3-642-19439-9
DOI
10.1007/978-3-642-19440-5_2
project
Embedded Applications Software Engineering
language
English
LU publication?
yes
id
c5b1fa14-9667-4779-b1eb-6904c3967be2 (old id 1671250)
date added to LUP
2016-04-04 11:00:10
date last changed
2021-05-06 19:04:15
@inproceedings{c5b1fa14-9667-4779-b1eb-6904c3967be2,
  abstract     = {Reference attribute grammars (RAGs) can be used to express semantics as super-imposed graphs on top of abstract syntax trees (ASTs). A RAG-based AST can be used as the in-memory model providing semantic information for software language tools such as compilers, refactoring tools, and meta-<br/><br>
modeling tools. RAG performance is based on dynamic attribute evaluation with caching. Caching all attributes gives optimal performance in the sense that each attribute is evaluated at most once. However, performance can be further improved by a selective caching strategy, avoiding caching overhead where it does not pay off. In this paper we present a profiling-based technique for automatically finding a good caching configuration. The technique has been evaluated on a generated Java compiler, compiling programs from the Jacks test suite and the DaCapo benchmark suite.},
  author       = {Söderberg, Emma and Hedin, Görel},
  booktitle    = {Lecture Notes in Computer Science},
  editor       = {Malloy, Brian and Staab, Steffen and van den Brand, Mark},
  isbn         = {978-3-642-19439-9},
  language     = {eng},
  pages        = {2--21},
  publisher    = {Springer},
  title        = {Automated selective caching for reference attribute grammars},
  url          = {http://dx.doi.org/10.1007/978-3-642-19440-5_2},
  doi          = {10.1007/978-3-642-19440-5_2},
  volume       = {6563},
  year         = {2011},
}