Victoria University

Classless Object Semantics

ResearchArchive/Manakin Repository

Show simple item record

dc.contributor.advisor Noble, James
dc.contributor.advisor Pearce, David
dc.contributor.author Jones, Timothy
dc.date.accessioned 2017-10-10T22:12:03Z
dc.date.available 2017-10-10T22:12:03Z
dc.date.copyright 2017
dc.date.issued 2017
dc.identifier.uri http://hdl.handle.net/10063/6681
dc.description.abstract Objects have been categorised into classes that declare and implement their behaviour ever since the paradigm of object-orientation in programming languages was first conceived. Classes have an integral role in the design and theory of object-oriented languages, and often appear alongside objects as a foundational concept of the paradigm in many theoretical models. A number of object-oriented languages have attempted to remove classes as a core component of the language design and rebuild their functionality purely in terms of objects, to varying success. Much of the formal theory of objects that eschews classes as a fundamental construct has difficulty encoding the variety of behaviours possible in programs from class-based languages. This dissertation investigates the foundational nature of the class in the object-oriented paradigm from the perspective of an ‘objects-first’, classless language. Using the design of theoretical models and practical implementations of these designs as extensions of the Grace programming language, we demonstrate how objects can be used to emulate the functionality of classes, and the necessary trade-offs of this approach. We present Graceless, our theory of objects without classes, and use this language to explore what class functionality is difficult to encode using only objects. We consider the role of classes in the types and static analysis of object-oriented languages, and present both a practical design of brand objects and a corresponding extension of our theory that simulates the discipline of nominal typing. We also modify our theory to investigate the semantics of many different kinds of implementation reuse in the form of inheritance between both objects and classes, and compare the consequences of these different approaches. en_NZ
dc.language.iso en_NZ
dc.publisher Victoria University of Wellington en_NZ
dc.rights.uri http://creativecommons.org/licenses/by-sa/3.0/nz/
dc.subject Programming languages en_NZ
dc.subject Object-orientation en_NZ
dc.subject Type systems en_NZ
dc.title Classless Object Semantics en_NZ
dc.type text en_NZ
vuwschema.contributor.unit School of Engineering and Computer Science en_NZ
vuwschema.type.vuw Awarded Doctoral Thesis en_NZ
thesis.degree.discipline Computer Science en_NZ
thesis.degree.grantor Victoria University of Wellington en_NZ
thesis.degree.level Doctoral en_NZ
thesis.degree.name Doctor of Philosophy en_NZ
dc.rights.license Creative Commons GNU GPL en_NZ
dc.rights.license Allow modifications, as long as others share alike en_NZ
dc.rights.license Allow commercial use en_NZ
dc.date.updated 2017-10-05T23:58:46Z
vuwschema.subject.anzsrcfor 080203 Computational Logic and Formal Languages en_NZ
vuwschema.subject.anzsrcfor 080308 Programming Languages en_NZ
vuwschema.subject.anzsrctoa 1 PURE BASIC RESEARCH en_NZ


Files in this item

This item appears in the following Collection(s)

Show simple item record

http://creativecommons.org/licenses/by-sa/3.0/nz/ Except where otherwise noted, this item's license is described as http://creativecommons.org/licenses/by-sa/3.0/nz/

Search ResearchArchive


Advanced Search

Browse

My Account

Statistics