Viktor Kuncak, Patrick Lam, and Martin Rinard.
Roles are really great!
Technical Report 822, MIT LCS, 2001.
We present a new role system for specifying changing
referencing relationships of heap objects. The role of an
object depends, in large part, on its aliasing relationships
with other objects, with the role of each object changing as
its aliasing relationships change. Roles therefore capture
important object and data structure properties and provide
useful information about how the actions of the program
interact with these properties. Our role system enables the
programmer to specify the legal aliasing relationships that
define the set of roles that objects may play, the roles of
procedure parameters and object fields, and the role changes
that procedures perform while manipulating objects. We
present an interprocedural, compositional, and
context-sensitive role analysis algorithm that verifies that
a program respects the role constraints.
[ bib ]
Back