Authors: James Noble, Robert Biddle, Ewan Tempero, Alex Potanin, Dave Clarke, Elvis Software Design Research Group ~
Source: GZipped PostScript (86kb); Adobe PDF (210kb)
Encapsulation is a founding principle of object-oriented programming: to this end, there have been a number recent of proposals to increase programming languages support for encapsulation. While many of these proposals are similar in concept, it is often difficult to describe their effects in practice, or to evaluate clearly how related proposals differ from each other. We are developing a general topological model of encapsulation for object-oriented languages, based a program's object graph. Using this model, we can characterise a range of confinement, ownership, and alias protection schemes, in terms of their underlying encapsulation function. This analysis should help programmers understand the encapsulation provided by programming languages, assist students to better compare and contrast the features of different languages, and help language designers to craft the encapsulation schemes of forthcoming programming languages.