Generalising tree traversals and tree transformations to DAGs: Exploiting sharing without the pain
- ,
- Emil Axelsson
- ,
- Chalmers University of Technology
Research Output:
Journal Article or Conference Article in Journal
Journal article
Peer-reviewOpen access
Publication Information
Output type
Research Output:
Journal Article or Conference Article in Journal
Journal article
Peer-reviewOriginal language
EnglishPages from-to (Number of pages)
Pages 63-97Journal (Volume, Issue Number)
Science of Computer Programming (Volume 137)Publication milestones
- Published - 04/04/2017
Publication status
Published - 04/04/2017
ISSN
0167-6423Publication IDs
- Scopus: 84962109549
Abstract
We present a recursion scheme based on attribute grammars that can be transparently applied to trees and acyclic graphs. Our recursion scheme allows the programmer to implement a tree traversal or a tree transformation and then apply it to compact graph representations of trees instead. The resulting graph traversal or graph transformation avoids recomputation of intermediate results for shared nodes – even if intermediate results are used in different contexts. Consequently, this approach leads to asymptotic speedup proportional to the compression provided by the graph representation. In general, however, this sharing of intermediate results is not sound. Therefore, we complement our implementation of the recursion scheme with a number of correspondence theorems that ensure soundness for various classes of traversals. We illustrate the practical applicability of the implementation as well as the complementing theory with a number of examples.
Publication metrics
PlumX, opens in new tab
Captures
9
Citations
3
