Encapsulating Objects With Confined Types
Object-oriented languages provide little support for encapsulating objects. Reference semantics allows objects to escape their defining scope, and the pervasive aliasing that ensues remains a major source of software defects. This paper presents Kacheck/J, a tool for inferring object encapsulation properties of large Java programs. The authors' goal is to develop practical tools to assist software engineers, thus they focus on simple and scalable techniques. Kacheck/J is able to infer confinement - the property that all instances of a given type are encapsulated in their defining package.