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.

Open PDF

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

Tags

Communities of Interest

  • Energy and Power Technologies

DTIC Thesaurus Topics

  • Commerce
  • Computer Programming
  • Computer Programs
  • Computer Science
  • Computers
  • Guarantees
  • Information Systems
  • Inversion
  • Language
  • Linearity
  • Military Research
  • Models
  • Object Oriented Programming
  • Procedural Programming
  • Procedural Programming Language
  • Programming Languages
  • Prototypes

Fields of Study

  • Computer science
  • Engineering

Readers

  • Database Systems and Applications
  • Software Engineering.