Abstract
Many irreversible computation models have reversible counterparts, but these are poorly understood at present. We introduce reversible flowcharts with an assertion operator and show that any reversible flowchart can be simulated by a structured reversible flowchart using only three control flow operators. Reversible flowcharts are r- Turing-complete, meaning that they can simuluate reversible Turing machines without garbage data. We also demonstrate the injectivization of classical flowcharts into reversible flowcharts. The reversible flowchart computation model provides a theoretical justification for low-level machine code for reversible microprocessors as well as high-level block-structured reversible languages. We give examples for both such languages and illustrate them with a lossless encoder for permutations given by Dijkstra.
Access provided by Autonomous University of Puebla. Download to read the full chapter text
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Axelsen, H.B., Glück, R., Yokoyama, T.: Reversible machine code and its abstract processor architecture. In: Computer Science - Theory and Applications. Proceedings. LNCS, vol. 4649, pp. 56–69. Springer, Heidelberg (2007)
Bennett, C.H.: Logical reversibility of computation. IBM J. Res. Dev. 17(6), 525–532 (1973)
Bennett, C.H.: Time/space trade-offs for reversible computation. SIAM J. Comput. 18(4), 766–776 (1989)
Böhm, C., Jacopini, G.: Flow diagrams, Turing machines and languages with only two formation rules. Communications of the ACM 9(5), 366–371 (1966)
Cooper, D.C.: Böhm and Jacopini’s reduction of flow charts. Communications of the ACM 10(8), 463–473 (1967)
Dahl, O.-J., Dijkstra, E.W., Hoare, C.A.R. (eds.): Structured Programming. Academic Press, London (1972)
De Vos, A., Van Rentergem, Y.: Reversible computing: from mathematical group theory to electronical circuit experiment. In: 2nd Conf. on Computing Frontiers, pp. 35–44. ACM Press, New York (2005)
Dijkstra, E.W.: Program inversion. In: Bauer, F.L., Broy, M. (eds.) Program Construction: Intl. Summer School. LNCS, vol. 69, pp. 54–57. Springer, Heidelberg (1978)
Frank, M.P.: Reversibility for Efficient Computing. PhD thesis. MIT, Cambridge (1999)
Gomard, C.K., Jones, N.D.: Compiler generation by partial evaluation: a case study. Structured Programming 12, 123–144 (1991)
Gries, D.: The Science of Programming, ch.21: Inverting Programs. Texts and Monographs in Computer Science. Springer, Heidelberg (1981)
Hatcliff, J.: An introduction to online and offline partial evaluation using a simple flowchart language. In: Hatcliff, J., Mogensen, T., Thiemann, P. (eds.) Partial Evaluation. Practice and Theory. LNCS, vol. 1706, pp. 20–82. Springer, Heidelberg (1999)
Jacopini, G., Mentrasti, P., Sontacchi, G.: Reversible Turing machines and polynomial time reversibly computable functions. SIAM Journal on Discrete Mathematics 3(2), 241–254 (1990)
Lutz, C.: Janus: a time-reversible language. Letter written to Landauer, R. (1986), http://www.cise.ufl.edu/~mpf/rc/janus.html
Manna, Z.: Mathematical Theory of Computation. McGraw-Hill, New York (1974)
Morita, K., Yamaguchi, Y.: A universal reversible Turing machine. In: Durand-Lose, J., Margenstern, M. (eds.) Machines, Computations, and Universality. Proceedings. LNCS, vol. 4664, pp. 90–98. Springer, Heidelberg (2007)
Munakata, T.: Beyond silicon: New computing paradigms. Special issue. Communications of the ACM 50(9), 30–72 (2007)
Toffoli, T.: Computation and construction universality of reversible cellular automata. J. Comput. Sys. Sci. 15, 213–231 (1977)
Yokoyama, T., Axelsen, H.B., Glück, R.: Principles of a reversible programming language. In: 5th Conf. on Computing Frontiers, pp. 43–54. ACM Press, New York (2008)
Yokoyama, T., Glück, R.: A reversible programming language and its invertible self-interpreter. In: Partial Evaluation and Program Manipulation. Proceedings, pp. 144–153. ACM Press, New York (2007)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2008 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Yokoyama, T., Axelsen, H.B., Glück, R. (2008). Reversible Flowchart Languages and the Structured Reversible Program Theorem. In: Aceto, L., Damgård, I., Goldberg, L.A., Halldórsson, M.M., Ingólfsdóttir, A., Walukiewicz, I. (eds) Automata, Languages and Programming. ICALP 2008. Lecture Notes in Computer Science, vol 5126. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-70583-3_22
Download citation
DOI: https://doi.org/10.1007/978-3-540-70583-3_22
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-70582-6
Online ISBN: 978-3-540-70583-3
eBook Packages: Computer ScienceComputer Science (R0)