TY - GEN
T1 - Generating attribute grammar-based bidirectional transformations from rewrite rules
AU - Martins, Pedro
AU - Saraiva, João
AU - Fernandes, João Paulo
AU - Van Wyk, Eric
PY - 2014
Y1 - 2014
N2 - Higher order attribute grammars provide a convenient means for specifying uni-directional transformations, but they provide no direct support for bidirectional transformations. In this paper we show how rewrite rules (with non-linear right hand sides) that specify a forward/get transformation can be inverted to specify a partial backward/put transformation. These inverted rewrite rules can then be extended with additional rules based on characteristics of the source language grammar and forward transformations to create, under certain circumstances, a total backward transformation. Finally, these rules are used to generate attribute grammar specifications implementing both transformations. Categories and Subject Descriptors D.3.3 [Programming Languages]: Data Types and Structures, Recursion; F.3.2 [Logics and Meanings of Programs]: Semantics of Programming Languages- Algebraic approaches to semantics; I.1.1 [Symbolic and Algebraic Manipulation]: Expressions and Their Representation.
AB - Higher order attribute grammars provide a convenient means for specifying uni-directional transformations, but they provide no direct support for bidirectional transformations. In this paper we show how rewrite rules (with non-linear right hand sides) that specify a forward/get transformation can be inverted to specify a partial backward/put transformation. These inverted rewrite rules can then be extended with additional rules based on characteristics of the source language grammar and forward transformations to create, under certain circumstances, a total backward transformation. Finally, these rules are used to generate attribute grammar specifications implementing both transformations. Categories and Subject Descriptors D.3.3 [Programming Languages]: Data Types and Structures, Recursion; F.3.2 [Logics and Meanings of Programs]: Semantics of Programming Languages- Algebraic approaches to semantics; I.1.1 [Symbolic and Algebraic Manipulation]: Expressions and Their Representation.
KW - Attribute grammars
KW - Bidirectional transformations
KW - Rewrite rules
UR - http://www.scopus.com/inward/record.url?scp=84897742117&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84897742117&partnerID=8YFLogxK
U2 - 10.1145/2543728.2543745
DO - 10.1145/2543728.2543745
M3 - Conference contribution
AN - SCOPUS:84897742117
SN - 9781450326193
T3 - PEPM 2014 - Proceedings of the ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation, Co-located with POPL 2014
SP - 63
EP - 70
BT - PEPM 2014 - Proceedings of the ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation, Co-located with POPL 2014
PB - Association for Computing Machinery
T2 - ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation, PEPM 2014 - Co-located with POPL 2014
Y2 - 20 January 2014 through 21 January 2014
ER -