Home
Scholarly Works
Isomorphic Interpreters from Logically Reversible...
Conference

Isomorphic Interpreters from Logically Reversible Abstract Machines

Abstract

In our previous work, we developed a reversible programming language and established that every computation in it is a (partial) isomorphism that is reversible and that preserves information. The language is founded on type isomorphisms that have a clear categorical semantics but that are awkward as a notation for writing actual programs, especially recursive ones. This paper remedies this aspect by presenting a systematic technique for developing a large and expressive class of reversible recursive programs, that of logically reversible small-step abstract machines. In other words, this paper shows that once we have a logically reversible machine in a notation of our choice, expressing the machine as an isomorphic interpreter can be done systematically and does not present any significant conceptual difficulties. Concretely, we develop several simple interpreters over numbers and addition, move on to tree traversals, and finish with a meta-circular interpreter for our reversible language. This gives us a means of developing large reversible programs with the ease of reasoning at the level of a conventional small-step semantics.

Authors

James RP; Sabry A

Series

Lecture Notes in Computer Science

Volume

7581

Pagination

pp. 57-71

Publisher

Springer Nature

Publication Date

January 1, 2013

DOI

10.1007/978-3-642-36315-3_5

Conference proceedings

Lecture Notes in Computer Science

ISSN

0302-9743

Labels

View published work (Non-McMaster Users)

Contact the Experts team