Door : an object-role database programming language
by Kwok Kay Wong
THESIS
1997
Ph.D. Computer Science
xiii, 176 leaves : ill. ; 30 cm
Abstract
In most object-oriented systems, an object has a single defining type, often corresponding to its class. This type determines the complete behavior of an object. It is typically not possible to modify this behavior after the object has been created. However, these systems have serious difficulties in representing objects taking on different and multiple roles over time. It is common for an object to deviate from the strict behaviors that are provided by its type. It is also often important to be able to change the type of an object as that object changes, to limit our view of the object, or to treat an object as if it possessed the attributes of some other type....[ Read more ]
In most object-oriented systems, an object has a single defining type, often corresponding to its class. This type determines the complete behavior of an object. It is typically not possible to modify this behavior after the object has been created. However, these systems have serious difficulties in representing objects taking on different and multiple roles over time. It is common for an object to deviate from the strict behaviors that are provided by its type. It is also often important to be able to change the type of an object as that object changes, to limit our view of the object, or to treat an object as if it possessed the attributes of some other type.
This thesis proposes a database programming language called DOOR (Database + Object-Orientation + Roles) which supports objects with roles. Objects with roles can be used to simulate many useful extensions to typing that occur naturally in many applications. For example, we can use objects with changing roles to provide the behavior of versions, changing types of instances, views, and possible world semantics. We can also use the same mechanisms to introduce such behaviors as minimal template, multiple class membership, and union type. The use of roles to achieve some of these notions is demonstrated.
Furthermore, a formal calculus is developed for roles and type safety is guaranteed. Based on the calculus, DOOR is implemented using the concept of Metaobject Protocols, and the Exodus Storage Manager is used as the persistent store. Finally, non-trivial applications are used to demonstrate the significance of the language.
Post a Comment