Abstract
This paper introduces the concept of an unshareable dynamic object, i.e., an object that is created dynamically on the heap, and is guaranteed to have a unique and movable pointer leading to it. The use of such unshareable objects, whenever sharing is not required, is expected to fortify the concept of encapsulation, to make systems simpler and easier to reason about, and to make storage management safer and more efficient. We argue that unshareable objects can be implemented by means of few minor and virtually costless modifications in conventional OO languages, and we demonstrate this in detail