TY - GEN
T1 - Data structures and dynamic memory management in reversible languages
AU - Cservenka, Martin Holm
AU - Glück, Robert
AU - Haulund, Tue
AU - Mogensen, Torben Ægidius
PY - 2018
Y1 - 2018
N2 - We present a method for reversible dynamic memory management based on a reversible version of the Buddy Memory system. This method supports decoupled allocation and deallocation of variable-sized records and can be applied to any reversible language with heap storage. We demonstrate how these new capabilities allow for the direct realization of commonplace data structures such as trees, heaps and queues which until now has not been practical in a reversible language. Finally, we provide a definition of our method in the high-level reversible language Janus as well as a description of its fragmentation and garbage-generation characteristics. The reversible memory management system has been fully implemented and tested in a compiler for a reversible object-oriented programming language targeting the reversible assembly language PISA.
AB - We present a method for reversible dynamic memory management based on a reversible version of the Buddy Memory system. This method supports decoupled allocation and deallocation of variable-sized records and can be applied to any reversible language with heap storage. We demonstrate how these new capabilities allow for the direct realization of commonplace data structures such as trees, heaps and queues which until now has not been practical in a reversible language. Finally, we provide a definition of our method in the high-level reversible language Janus as well as a description of its fragmentation and garbage-generation characteristics. The reversible memory management system has been fully implemented and tested in a compiler for a reversible object-oriented programming language targeting the reversible assembly language PISA.
UR - http://www.scopus.com/inward/record.url?scp=85053527768&partnerID=8YFLogxK
U2 - 10.1007/978-3-319-99498-7_19
DO - 10.1007/978-3-319-99498-7_19
M3 - Article in proceedings
T3 - Lecture notes in computer science
SP - 269
EP - 285
BT - Reversible Computation
A2 - Kari, Jarkko
A2 - Ulidowski, Irek
PB - Springer
T2 - 10th International Conference on Reversible Computation, RC 2018
Y2 - 12 September 2018 through 14 September 2018
ER -