This paper presents the design and implementation Joule~R, a reversible object-oriented language in the style of Janus, that supports common object-oriented programming patterns such as factories, iterators, and the definition of abstract datatypes. Memory management is performed using a simple notion of regions, enabling the full power of object-oriented programming to be used, while remaining completely garbage-free. The language is implemented by translation to Janus.
展开▼