Search engine for discovering works of Art, research articles, and books related to Art and Culture
ShareThis
Javascript must be enabled to continue!

Generic Ownership: a Practical Approach to Ownership and Confinement in Object-Oriented Programming Languages

View through CrossRef
<p>Modern object-oriented programming languages support many techniques that simplify the work of a programmer. Among them is generic types: the ability to create generic descriptions of algorithms and object structures that will be automatically specialised by supplying the type information when they are used. At the same time, object-oriented technologies still suffer from aliasing: the case of many objects in a program's memory referring to the same object via different references. Ownership types enforce encapsulation in object-oriented programs by ensuring that objects cannot be referred to from the outside of the object(s) that own them. Existing ownership programming languages either do not support generic types or attempt to add them on top of ownership restrictions. The goal of this work is to bring object ownership into mainstream object-oriented programming languages. This thesis presents Generic Ownership which provides perobject ownership on top of a generic imperative language. Surprisingly, the resulting system not only provides ownership guarantees comparable to the established systems, but also requires few additional language mechanisms to achieve them due to full reuse of generic types. In this thesis I formalise the core of Generic Ownership, highlighting that the restriction of this calls, owner preservation over subtyping, and appropriate owner nesting are the only necessary requirements for ownership. I describe two formalisms: (1) a simple formalism, capturing confinement in a functional setting, and (2) a complete formalism, providing a way for Generic Ownership to support both deep and shallow variations of ownership types. I support the formal work by describing how the Ownership Generic Java (OGJ) language is implemented as a minimal extension to Java 5. OGJ is the first publicly available language implementation that supports ownership, confinement, and generic types at the same time. I demonstrate OGJ in practice: show how to use OGJ to write programs and provide insights into the implementations of Generic Ownership.</p>
Victoria University of Wellington Library
Title: Generic Ownership: a Practical Approach to Ownership and Confinement in Object-Oriented Programming Languages
Description:
<p>Modern object-oriented programming languages support many techniques that simplify the work of a programmer.
Among them is generic types: the ability to create generic descriptions of algorithms and object structures that will be automatically specialised by supplying the type information when they are used.
At the same time, object-oriented technologies still suffer from aliasing: the case of many objects in a program's memory referring to the same object via different references.
 Ownership types enforce encapsulation in object-oriented programs by ensuring that objects cannot be referred to from the outside of the object(s) that own them.
Existing ownership programming languages either do not support generic types or attempt to add them on top of ownership restrictions.
 The goal of this work is to bring object ownership into mainstream object-oriented programming languages.
This thesis presents Generic Ownership which provides perobject ownership on top of a generic imperative language.
Surprisingly, the resulting system not only provides ownership guarantees comparable to the established systems, but also requires few additional language mechanisms to achieve them due to full reuse of generic types.
 In this thesis I formalise the core of Generic Ownership, highlighting that the restriction of this calls, owner preservation over subtyping, and appropriate owner nesting are the only necessary requirements for ownership.
I describe two formalisms: (1) a simple formalism, capturing confinement in a functional setting, and (2) a complete formalism, providing a way for Generic Ownership to support both deep and shallow variations of ownership types.
 I support the formal work by describing how the Ownership Generic Java (OGJ) language is implemented as a minimal extension to Java 5.
OGJ is the first publicly available language implementation that supports ownership, confinement, and generic types at the same time.
I demonstrate OGJ in practice: show how to use OGJ to write programs and provide insights into the implementations of Generic Ownership.
</p>.

Related Results

Introducing object-oriented programming into the computer science curriculum
Introducing object-oriented programming into the computer science curriculum
In recent years, object-oriented programming languages and object-oriented program design have become increasingly popular. Dialects of many popular programming languages are now a...
Neurologists’ insights and practices on generic antiepileptic medications in epilepsy management: A Saudi Arabian perspective
Neurologists’ insights and practices on generic antiepileptic medications in epilepsy management: A Saudi Arabian perspective
Objectives: This study aimed to investigate neurologists’ perceptions and practices regarding generic antiepileptic medications (AEDs) in the management of epilepsy, and whether ge...
Rodnoosjetljiv jezik na primjeru njemačkih časopisa Brigitte i Der Spiegel
Rodnoosjetljiv jezik na primjeru njemačkih časopisa Brigitte i Der Spiegel
On the basis of the comparative analysis of texts of the German biweekly magazine Brigitte and the weekly magazine Der Spiegel and under the presumption that gender-sensitive langu...
Kra-Dai Languages
Kra-Dai Languages
Kra-Dai (also called Tai-Kadai and Kam-Tai) is a family of approximately 100 languages spoken in Southeast Asia, extending from the island of Hainan, China, in the east to the Indi...
Current Trends of Object Oriented Programming Paradigm in Software Development
Current Trends of Object Oriented Programming Paradigm in Software Development
ABSTRACT: Object oriented programming is the most popular programming paradigm in the current Information technology era. This paper focuses on in-depth Object- Oriented Programmin...
Object‐Oriented Analysis
Object‐Oriented Analysis
AbstractObject‐oriented analysis is a method of formulating a model of a desired software system in terms of objects and their interactions. The discipline was started by practitio...
The Librarian's Introduction to Programming Languages
The Librarian's Introduction to Programming Languages
The Librarian’s Introduction to Programming Languages presents case studies and practical applications for using the top programming languages in library and information settings. ...

Back to Top