Declarative rewriting through circular nonterminal attributes
(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:
https://lup.lub.lu.se/record/7995100
- author
- Söderberg, Emma LU and Hedin, Görel LU
- organization
- publishing date
- 2015
- 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
- project
- ELLIIT LU P05: Scalable Language Tools for Cyber-Physical Systems
- language
- English
- LU publication?
- yes
- id
- af79cd02-24d6-4995-b982-e243720b4860 (old id 7995100)
- date added to LUP
- 2016-04-01 10:27:01
- date last changed
- 2022-04-20 02:17:14
@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}}, doi = {{10.1016/j.cl.2015.08.008}}, volume = {{44}}, year = {{2015}}, }