@inbook{78d28e6491084698a16cec429059f8c3,
title = "Frugal encoding in reversible: A case study for quicksort",
abstract = "is a high-level data structuring language, designed to allow for modular static timing analysis. In essence, allows the programmer to determine the average running time of a broad class of programmes directly from the code in a (semi-)automated way. The language has the property of randomness preservation which means that applying any operation to a random structure, results in an output isomorphic to one or more random structures, which is the key to systematic timing. The language, its implementation and the associated timing tool have been reported on in the literature. Randomness preservation is key in ensuring modular timing derivation. A degree of reversibility in turn is a key aspect of ensuring randomness preservation. All operations of the language can be made reversible with minimal additional bookkeeping. A challenge in achieving this encoding in a frugal way is to ensure subsets of data can be stored without excessive overheads. The paper focuses on illustrating such an encoding for the case of the Quicksort algorithm. Similar encodings are explored to ensure efficient reversibility of all operations. The paper is self contained, i.e. no prior knowledge of the language is needed to follow the encoding argument. We show how to efficiently encode the information needed to reverse the split of a list into two sublists. The code for reversible Quicksort is provided and an example illustrates the algorithm's reverse execution.",
keywords = "Algorithms, Data structures, Encoding, language, Partial orders, Quicksort, Random Structures, Reversible computing, Sorting, Time analysis",
author = "Diarmuid Early and Ang Gao and Michel Schellekens",
year = "2013",
doi = "10.1007/978-3-642-36315-3\_7",
language = "English",
isbn = "9783642363146",
series = "Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)",
publisher = "Springer Verlag",
pages = "85--96",
booktitle = "Reversible Computation - 4th International Workshop, RC 2012, Revised Papers",
address = "Germany",
note = "4th International Workshop on Reversible Computation, RC 2012 ; Conference date: 02-07-2012 Through 03-07-2012",
}