|
ABSTRACT
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. Our goal is to develop practical tools to assist software engineers, thus we 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. This simple property can be used to identify accidental leaks of sensitive objects, as well as for compiler optimizations. We report on the analysis of a large body of code and discuss language support and refactoring for confinement.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
 |
1
|
Jonathan Aldrich , Valentin Kostadinov , Craig Chambers, Alias annotations for program understanding, Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, November 04-08, 2002, Seattle, Washington, USA
|
| |
2
|
Almeida, P. S. 1997. Balloon types: Controlling sharing of state in data types. In ECOOP'97---Object-Oriented Programming, 11th European Conference (Jyväskylä, Finland, June 9--13). Lecture Notes in Computer Science, vol. 1241. Springer-Verlag, New York, 32--59.
|
| |
3
|
Almeida, P. S. 1999. Type-checking balloon types. Elect. Notes Theoret. Comput. Sci. 20.
|
 |
4
|
|
| |
5
|
Barnett, M., DeLine, R., Fähndrich, M., Rustan, K., Leino, M., and Schulte, W. 2004. Verification of object-oriented programs with invariants. J. Obj. Tech. 3, 27--56. (Preliminary version in Proceedings of 5th Workshop on Formal Techniques for Java-like Programs, 2003).
|
 |
6
|
|
 |
7
|
|
 |
8
|
|
 |
9
|
|
 |
10
|
Jan Vitek , Boris Bokowski, Confined types, Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.82-96, November 01-05, 1999, Denver, Colorado, United States
|
 |
11
|
Chandrasekhar Boyapati , Robert Lee , Martin Rinard, Ownership types for safe programming: preventing data races and deadlocks, Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, November 04-08, 2002, Seattle, Washington, USA
|
 |
12
|
Chandrasekhar Boyapati , Alexandru Salcianu , William Beebee, Jr. , Martin Rinard, Ownership types for safe region-based memory management in real-time Java, Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation, June 09-11, 2003, San Diego, California, USA
|
| |
13
|
|
| |
14
|
|
| |
15
|
|
 |
16
|
Dave Clarke , Michael Richmond , James Noble, Saving the world from bad beans: deployment-time confinement checking, Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications, October 26-30, 2003, Anaheim, California, USA
|
| |
17
|
Clarke, D. and Wrigstad, T. 2003. External uniqueness. In Proceedings of the 10th Workshop on Foundations of Object-Oriented Languages (FOOL), (New Orleans, LA, Jan.).
|
 |
18
|
|
| |
19
|
|
| |
20
|
Ian Clarke , Oskar Sandberg , Brandon Wiley , Theodore W. Hong, Freenet: a distributed anonymous information storage and retrieval system, International workshop on Designing privacy enhancing technologies: design issues in anonymity and unobservability, p.46-66, January 2001, Berkeley, California, United States
|
| |
21
|
Detlefs, D., Leino, K., Leino, M., and Nelson, G. 1996. Wrestling with rep exposure. Tech. rep. Digital Equipment Corporation Systems Research Center.
|
 |
22
|
|
| |
23
|
Dowling, W. F. and Gallier, J. H. 1984. Linear-time algorithms for testing the satisfiability of propositional horn formulae. J. Logic Prog. 1, 3 (Oct.), 267--284.
|
| |
24
|
|
| |
25
|
Gamma, E., Helm, R., Johnson, R. E., and Vlissides, J. 1994. Design Patterns. Addison-Wesley, Reading, MA.
|
| |
26
|
|
| |
27
|
|
 |
28
|
John Hogg, Islands: aliasing protection in object-oriented languages, Conference proceedings on Object-oriented programming systems, languages, and applications, p.271-285, October 06-11, 1991, Phoenix, Arizona, United States
|
 |
29
|
|
 |
30
|
|
| |
31
|
Kent, S. and Maung, I. 1995. Encapsulation and aggregation. In Proceedings of TOOLS PACIFIC 95 (TOOLS 18), Prentice-Hall, Englewood Cliffs, NJ, 227--238.
|
| |
32
|
Müller, P. 2002. Modular specification and verification of object-oriented programs. Ph.D. dissertation. FernUniversität Hagen (Also in Lecture Notes in Computer Science, vol. 2262. Springer-Verlag, New York, 2002).
|
| |
33
|
Müller, P. and Poetzsch-Heffter, A. 1999. Universes: A type system for controlling representation exposure. In Programming Languages and Fundamentals of Programming, A. Poetzsch-Heffter and J. Meyer, Eds. Fernuniversität Hagen.
|
| |
34
|
|
| |
35
|
Potanin, A., Noble, J., Clarke, D. and Biddle, R. 2004. Featherweight generic confinement. In Proceedings of the Workshop on Foundations of Object-Oriented Languages.
|
| |
36
|
Rustan, K., Leino, M., and Müller, P. 2004. Object invariants in dynamic contexts. In Proceedings of ECOOP'04, 16th European Conference on Object-Oriented Programming, 491--516.
|
| |
37
|
Skalka, C. and Smith, S. F. 2005. Static use-based object confinement. Int. J. Inf. Secur. 4, 1--2, 87--104 (Preliminary version in Proceedings of Foundations of Computer Security, volume 02-12 of DIKU technical reports 2002. 117--126).
|
| |
38
|
Sun Microsystems. 2000. Support for extensions and applications in the version 1.2 of the Java platform. http://java.sun.com/products/jdk/1.2/docs/guide/extensions/spec.html.
|
| |
39
|
|
 |
40
|
Ayal Zaks , Vitaly Feldman , Nava Aizikowitz, Sealed calls in Java packages, Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.83-92, October 2000, Minneapolis, Minnesota, United States
|
| |
41
|
|
 |
42
|
Tian Zhao , Jens Palsberg , Jan Vitek, Lightweight confinement for featherweight java, Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications, October 26-30, 2003, Anaheim, California, USA
|
CITED BY
|
|
Tian Zhao , Jason Baker , James Hunt , James Noble , Jan Vitek, Implicit ownership types for memory management, Science of Computer Programming, v.71 n.3, p.213-241, May, 2008
|
|