Authors: Alex Potanin, James Noble, Dave Clarke, Robert Biddle, Elvis Software Design Research Group ~
Source: GZipped PostScript (297kb); Adobe PDF (381kb)
Existing approaches to object encapsulation and confinement either rely on restrictions to programs or require the use of specialised ownership type systems. Syntactic restrictions are difficult to scale and to prove correct, while specialised type systems require extensive changes to programming languages. We demonstrate that confinement can be enforced cheaply in Featherweight Generic Java, with no essential change to the underlying language or type system. This result delineates the differences between parametric polymorphism and ownership type systems, demonstrates that polymorphic type parameters can simultaneously act as ownership parameters, and should facilitate the adoption of ownership and confinement type systems in general-purpose programming languages.