OOPSLA '04

Program
Technical Program
  Invited Speakers
  Technical Papers
  Onward!
  Panels
  Practitioner Reports
  Tutorials
Workshops
DesignFest
Educators' Symposium
Demonstrations
Posters
Doctoral Symposium
Exhibits
Student Research Comp.
FlashBoF
 
Turing Lecture
 
Social Events
 
Week at a Glance
 
Final Program (1.5M .pdf)

Find in Program
 

Page
Printer-friendly

Basket
view, help

"Generic Ownership: Practical Ownership Control in Programming Languages"
Object-Oriented Programming, Systems, Languages and Applications
Home    Program    Housing & Transportation    Registration    Submissions    Wiki    Maps
 
  > Doctoral Symposium

Generic Ownership: Practical Ownership Control in Programming Languages

Alex Potanin, Victoria University of Wellington

This research abstract outlines the work I plan to do as part of my PhD. In particular, I propose to devise a practical way of integrating ownership control into existing programming languages in a way that will help with adoption of ownership in the general programming community.

Modern programming languages provide little support for object encapsulation and ownership. Escaped aliases to private objects can compromise both security and reliability of code in reference-abundant languages such as Java. Object ownership is a widely accepted approach to controlling aliasing in programming languages. Proposals for adding ownership to programming languages do not directly support type genericity. We propose Generic Ownership - a unified approach to providing generics and ownership. By including support for default ownership, Generic Ownership imposes no more syntactic or runtime overheads than traditional generic types. We have implemented Generic Ownership in the context of the Ownership Generic Java (OGJ) programming language, an extension to Generic Java, and we ground the formal side of this work within the Featherweight Generic Java framework. We hope that our work will help bring full support for object encapsulation to the mainstream programming world.