Elements of a Reversible Object-Oriented Language

Work-in-Progress Report
  • Ulrik Pagh SchultzEmail author
  • Holger Bock Axelsen
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9720)


This paper presents initial ideas for the design and implementation of a reversible object-oriented language based on extending Janus with object-oriented concepts such as classes that encapsulate behavior and state, inheritance, virtual dispatching, as well as constructors. We show that virtual dispatching is a reversible decision mechanism easily translatable to a standard reversible programming model such as Janus, and we argue that reversible management of state can be accomplished using reversible constructors. The language is implemented in terms of translation to standard Janus programs.


Object Reference Memory Management Virtual Method Runtime Type Modern Programming Language 
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.


  1. 1.
    Chirila, C.B., Crescenzo, P., Lahire, P.: Reverse inheritance: improving class library reuse in Eiffel. In: Langages et Modeles a Objets (2007)Google Scholar
  2. 2.
    Hansen, J.S.K.: Translation of a reversible functional programming language. Master’s thesis, Department of Computer Science, University of Copenhagen (2014)Google Scholar
  3. 3.
    James, R.P., Sabry, A.: Theseus: a high level language for reversible computing, work-in-progress report at RC (2014).
  4. 4.
    Kristensen, B.B., Madsen, O.L., Møller-Pedersen, B.: The when, why and why not of the beta programming language. In: Proceedings of the Third ACM SIGPLAN Conference on History of Programming Languages, pp. 10-1–10-57. HOPL III, NY, USA (2007).
  5. 5.
    Meyer, B.: Object-Oriented Software Construction, vol. 2. Prentice Hall, New York (1988)zbMATHGoogle Scholar
  6. 6.
    Mogensen, T.: Garbage collection for reversible functional languages. In: Krivine, J., Stefani, J.B. (eds.) RC 2015. LNCS, vol. 9138, pp. 79–94. Springer, Heidelberg (2015)CrossRefGoogle Scholar
  7. 7.
    Yokoyama, T., Axelsen, H.B., Glück, R.: Principles of a reversible programming language. In: Proceedings of Computing Frontiers, pp. 43–54. ACM (2008)Google Scholar
  8. 8.
    Yokoyama, T., Axelsen, H.B., Glück, R.: Towards a reversible functional language. In: De Vos, A., Wille, R. (eds.) RC 2011. LNCS, vol. 7165, pp. 14–29. Springer, Heidelberg (2012)CrossRefGoogle Scholar

Copyright information

© Springer International Publishing Switzerland 2016

Authors and Affiliations

  1. 1.University of Southern DenmarkOdenseDenmark
  2. 2.University of CopenhagenCopenhagenDenmark

Personalised recommendations