Aliasing, confinement, and ownership in object-oriented programming
IWACO workshop report
Clarke, Dave Drossopoulou, Sophia Müller, Peter Noble, James Wrigstad, Tobias
Lecture Notes in Computer Science vol:5475 pages:30-41
ECOOP edition:22 location:Cyprus date:7-11 July 2008
The power of objects lies in the flexibility of their interconnection structure. But this flexibility comes at a cost. Because an object can be modified via any alias, object-oriented programs are hard to understand, maintain, and analyze. Aliasing makes objects depend on their
environment in unpredictable ways, breaking the encapsulation necessary for reliable software components, making it difficult to reason about and optimize programs, obscuring the flow of information between objects, and introducing security problems.
Aliasing is a fundamental difficulty, but we accept its presence. Instead we seek techniques for describing, reasoning about, restricting, analyzing, and preventing the connections between objects and/or the flow of information between them. Promising approaches to these problems are based on ownership, confinement, information flow, sharing control, escape analysis, argument independence, read-only references, effects systems, and access control mechanisms.