Transmigration of Object Identity
Transmigration of Object Identity
|dc.contributor.advisor||Cremers, Armin B.|
|dc.description.abstract||The object-oriented paradigm is one of the central programming paradigms of our time. The following description is a generally accepted characterization of that paradigm: “An object has state, behavior, and identity”. The concept of object identity plays an important role here insofar it is the only characteristic element that is not available in purely declarative programming languages without further effort. Purely declarative languages also incorporate behavior via functions or rules, and state via immutable values that are passed around to such functions and rules. Objects localize state and behavior, and the single means to access state and behavior of objects are their identity. In other words, the major achievement of objectoriented programming languages is to provide constructs for unambiguously mapping object identities to storage locations and procedures that act on those storage locations. Early discussions of the notion of object identity have found strong connections between changes of state and equality predicates for objects. Object identity lies at the center of such discussions: when the state of an object is changed by way of its identity the new state is (re)observable via that same identity; when the same object identity is stored in two different variables it is always the same state that is observable via those variables. Later on, various authors have implicitly or explicitly kept that same basic idea.|
Now, this thesis shows that an alternative perception of object identity is possible when an analysis starts from a description of the usage scenarios for object identity. These are reference on the one hand – an object is able to refer to other objects – and comparison on the other hand – two variables may refer to the same or to different objects. These usage scenarios can be separated both on the conceptual level of an object model as well as on the practical level of the implementation of a programming language and run-time environment. From this modified view on object identity new operations can be derived. Especially dynamic object replacement is probably the most intriguing operation that is enabled by the approach taken in this thesis. This operation has the potential to address usage scenarios from the emerging field of unanticipated software evolution. This shows that this thesis is not only of a theoretical nature but also gives insight into possible practical applications. Still, the traditional notion of object identity is kept as a special case of the broader conceptual framework presented in this thesis.
This thesis presents a historical perspective on the concept of object identity by illustrating central notions through summaries of seminal publications on the topic. It then develops the essential ingredients of the Gilgul model – one of the important results of this thesis – and demonstrates these ingredients as extensions of the Java programming language. Furthermore, the intricacies of the replacement of active objects are analyzed – objects with methods executing at the time of their replacement – and extensions of the Gilgul language are presented that help to deal with these intricacies. Finally, the implementation of the Gilgul language and run-time environment are discussed and evaluated, and usage examples are given.
|dc.subject||Language Constructs and Features|
|dc.title||Transmigration of Object Identity|
|dc.type||Dissertation oder Habilitation|
|dc.publisher.name||Universitäts- und Landesbibliothek Bonn|
|ulbbnediss.affiliation.name||Rheinische Friedrich-Wilhelms-Universität Bonn|
|dc.contributor.coReferee||Szyperski, Clemens A.|
Files in this item
This item appears in the following Collection(s)