A Type Checked Prototype-Based Model with Linearity
Abstract
Dynamic inheritance, originating in the SELF programming language, is the ability of an object to change the code that it inherits at run time. This ability is useful for modeling objects that behave in different ways at different points in the object's life cycle. Unstructured dynamic inheritance, however, allows arbitrary changes to the interface of the object, and thus is incompatible with statically type-checked languages such as C++, C#, and Java. This paper provides a more structured facility for dynamic inheritance, where a type system tracks the changes in an object's interface that occur as the inheritance hierarchy is changed. The authors define a formal model of a language and type system with dynamic inheritance, and prove that the type system is sound in that it prevents run-time type errors. The type system tracks the linearity of objects and methods to ensure that objects whose interfaces change are not aliased.
Document Details
- Document Type
- Technical Report
- Publication Date
- Dec 01, 2004
- Accession Number
- ADA456086
Entities
People
- Andi Bejleri
- Jonathan Erik Aldrich
- Kevin Bierhoff
Organizations
- Carnegie Mellon University