Advanced

Declarative rewriting through circular nonterminal attributes

Söderberg, Emma LU and Hedin, Görel LU (2015) In Computer Languages, Systems & Structures 44. p.3-23
Abstract
Reference attribute grammars (RAGs) provide a practical declarative means to implement programming language compilers and other tools. RAGs have previously been extended to support nonterminal attributes (also known as higher-order attributes), circular attributes, and context-dependent declarative rewrites of the abstract syntax tree. In this previous work, interdependencies between these extensions are not considered. In this article, we investigate how these extensions can interact, and still be well defined. We introduce a generalized evaluation algorithm that can handle grammars where circular attributes and rewrites are interdependent. To this end, we introduce circular nonterminal attributes, and show how RAG rewrites are equivalent... (More)
Reference attribute grammars (RAGs) provide a practical declarative means to implement programming language compilers and other tools. RAGs have previously been extended to support nonterminal attributes (also known as higher-order attributes), circular attributes, and context-dependent declarative rewrites of the abstract syntax tree. In this previous work, interdependencies between these extensions are not considered. In this article, we investigate how these extensions can interact, and still be well defined. We introduce a generalized evaluation algorithm that can handle grammars where circular attributes and rewrites are interdependent. To this end, we introduce circular nonterminal attributes, and show how RAG rewrites are equivalent to such attributes. (Less)
Please use this url to cite or link to this publication:
author
organization
publishing date
type
Contribution to journal
publication status
published
subject
in
Computer Languages, Systems & Structures
volume
44
pages
3 - 23
publisher
Elsevier
external identifiers
  • wos:000366778300002
  • scopus:84943663351
ISSN
1477-8424
DOI
10.1016/j.cl.2015.08.008
language
English
LU publication?
yes
id
af79cd02-24d6-4995-b982-e243720b4860 (old id 7995100)
date added to LUP
2015-09-28 10:35:48
date last changed
2017-01-01 03:36:09
@article{af79cd02-24d6-4995-b982-e243720b4860,
  abstract     = {Reference attribute grammars (RAGs) provide a practical declarative means to implement programming language compilers and other tools. RAGs have previously been extended to support nonterminal attributes (also known as higher-order attributes), circular attributes, and context-dependent declarative rewrites of the abstract syntax tree. In this previous work, interdependencies between these extensions are not considered. In this article, we investigate how these extensions can interact, and still be well defined. We introduce a generalized evaluation algorithm that can handle grammars where circular attributes and rewrites are interdependent. To this end, we introduce circular nonterminal attributes, and show how RAG rewrites are equivalent to such attributes.},
  author       = {Söderberg, Emma and Hedin, Görel},
  issn         = {1477-8424},
  language     = {eng},
  pages        = {3--23},
  publisher    = {Elsevier},
  series       = {Computer Languages, Systems & Structures},
  title        = {Declarative rewriting through circular nonterminal attributes},
  url          = {http://dx.doi.org/10.1016/j.cl.2015.08.008},
  volume       = {44},
  year         = {2015},
}