TY - JOUR
T1 - A categorical foundation for structured reversible flowchart languages
AU - Glück, Robert
AU - Kaarsgaard, Robin
PY - 2018
Y1 - 2018
N2 - Structured reversible flowchart languages is a class of imperative reversible programming languages allowingfor a simple diagrammatic representation of control flow built from a limited set of control flow structures,as ordinary structured flowcharts allow for conventional languages. This class includes the reversibleprogramming language Janus (without recursion), as well as more recently developed reversible programminglanguages such asR-COREandR-WHILE. In the present paper, we develop a categorical foundation for thisclass of languages based on inverse categories with joins. We generalize the notion of extensivity of restrictioncategories to one that may be accommodated by inverse categories, and use the resulting decision mapsto give a reversible representation of predicates and assertions. This leads to a categorical semantics forstructured reversible flowcharts, from which we show that a program inverter can be extracted. Finally, weexemplify our approach by the development of a small structured reversible flowchart language, use ourframework to both straightforwardly give it semantics and derive fundamental theorems about it, and discussfurther applications of decisions in reversible programming.
AB - Structured reversible flowchart languages is a class of imperative reversible programming languages allowingfor a simple diagrammatic representation of control flow built from a limited set of control flow structures,as ordinary structured flowcharts allow for conventional languages. This class includes the reversibleprogramming language Janus (without recursion), as well as more recently developed reversible programminglanguages such asR-COREandR-WHILE. In the present paper, we develop a categorical foundation for thisclass of languages based on inverse categories with joins. We generalize the notion of extensivity of restrictioncategories to one that may be accommodated by inverse categories, and use the resulting decision mapsto give a reversible representation of predicates and assertions. This leads to a categorical semantics forstructured reversible flowcharts, from which we show that a program inverter can be extracted. Finally, weexemplify our approach by the development of a small structured reversible flowchart language, use ourframework to both straightforwardly give it semantics and derive fundamental theorems about it, and discussfurther applications of decisions in reversible programming.
U2 - 10.1016/j.entcs.2018.03.021
DO - 10.1016/j.entcs.2018.03.021
M3 - Journal article
VL - 336
SP - 155
EP - 171
JO - Electronic Notes in Theoretical Computer Science
JF - Electronic Notes in Theoretical Computer Science
SN - 1571-0661
ER -