Practical Ownership Types for Object and Aspect Programs

Lead Research Organisation: Imperial College London
Department Name: Computing

Abstract

Ownership types are becoming increasingly established as an effectivetechnique for controlling the dynamic topology of executingobject-oriented programs.Ownership typess are not yet established in mainstream programming,however, because 1) writing them imposes a heavy burden on theprogrammer, 2) they have not yet addressed the issues aroundcomponents and separation (existing ownership type schemes work withobject-oriented languages but not aspect-oriented languages), and 3)many different (but related) flavours of ownership types addressdifferent facets of a program's design (eg aliasing, concurrency,persistence, memory management etc).We propose three ways of making ownership typess more practical: 1) Generic Ownership Type Inference: We will signifcantly improve existing techniques for ownership type inference, by building upon our recent work that considers ownership types as generic classes. We will adapt contemporary algorithms for inferring generic types for object-oriented programs and apply them to ownership type inference. 2) Ownership Types for Aspect-Orientation: We will design an ownership type system for aspect-oriented programs, using our experience of ownership types for object-oriented languages. We will formalise these ownership types by combining existing models of aspect-oriented programming languages with standard ownership type techniques. 3) Ownership Aware Aspects: We will extend our aspect-oriented ownership types so that programmers will be able to write aspects that depend on their programs' ownership structures. This will allow different facets of the program's design to use ownership information in different ways. Finally, we will validate the research by taking several significant programs written using specialised ownership type systems and replicate them using aspect-oriented ownership types and ownership type inference.

Publications

10 25 50
publication icon
Clarke D (2007) Tribe

publication icon
Potanin A (2006) Generic ownership for generic Java in ACM SIGPLAN Notices