About This Site
> Concepts for Persistent Objects
Language Design Principles
Instances and Copies
Branches and Growth Points
Synchronization and Merging
That's it … the complete set of concepts for persistent objects. Now that you've seen the explanations of the individual concepts, let me go back and put it all together.
A persistent object consists of a tree of versions, plus growth points attached to those versions. It's not exactly a tree, of course, because the branches can merge, but that's the idea.
One might also like the object concept to include facts about synchronization, as I've tried to indicate here with a line.
Each version, in turn, consists of some number of identical instances.
There are only a few ways in which a persistent object can change.
Creation or destruction of instances doesn't even count as a change to the object.
It is possible to copy an object to create a new object. Although object copying in some ways looks like reinstantiation, and in other ways looks like branching, it is really quite different. Here's how I imagine it.
Note that the copy derives from a single version, and does not include the past history of the original object.
@ September (2000)