{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T04:39:10Z","timestamp":1750307950978,"version":"3.41.0"},"reference-count":40,"publisher":"Association for Computing Machinery (ACM)","issue":"6","license":[{"start":{"date-parts":[[2007,10,1]],"date-time":"2007-10-01T00:00:00Z","timestamp":1191196800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Program. Lang. Syst."],"published-print":{"date-parts":[[2007,10]]},"abstract":"<jats:p>\n            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\n            <jats:italic>confinement<\/jats:italic>\n            \u2014the 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.\n          <\/jats:p>","DOI":"10.1145\/1286821.1286823","type":"journal-article","created":{"date-parts":[[2007,11,15]],"date-time":"2007-11-15T14:26:02Z","timestamp":1195136762000},"page":"32","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":21,"title":["Encapsulating objects with confined types"],"prefix":"10.1145","volume":"29","author":[{"given":"Christian","family":"Grothoff","sequence":"first","affiliation":[{"name":"University of California, Los Angeles, CA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Jens","family":"Palsberg","sequence":"additional","affiliation":[{"name":"University of California, Los Angeles, CA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Jan","family":"Vitek","sequence":"additional","affiliation":[{"name":"Purdue University, West Lafayette, IN"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2007,10]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/582419.582448"},{"key":"e_1_2_1_2_1","series-title":"Lecture Notes in Computer Science","volume-title":"ECOOP'97---Object-Oriented Programming, 11th European Conference (Jyv\u00e4skyl\u00e4, Finland, June 9--13)","author":"Almeida P. S.","unstructured":"Almeida , P. S. 1997. Balloon types: Controlling sharing of state in data types . In ECOOP'97---Object-Oriented Programming, 11th European Conference (Jyv\u00e4skyl\u00e4, Finland, June 9--13) . Lecture Notes in Computer Science , vol. 1241 . Springer-Verlag , New York , 32--59. Almeida, P. S. 1997. Balloon types: Controlling sharing of state in data types. In ECOOP'97---Object-Oriented Programming, 11th European Conference (Jyv\u00e4skyl\u00e4, Finland, June 9--13). Lecture Notes in Computer Science, vol. 1241. Springer-Verlag, New York, 32--59."},{"key":"e_1_2_1_3_1","doi-asserted-by":"crossref","unstructured":"Almeida P. S. 1999. Type-checking balloon types. Elect. Notes Theoret. Comput. Sci. 20.  Almeida P. S. 1999. Type-checking balloon types. Elect. Notes Theoret. Comput. Sci. 20.","DOI":"10.1016\/S1571-0661(04)80064-1"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/503272.503289"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.5381\/jot.2004.3.6.a2"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/320385.320387"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/945885.945886"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/320385.320388"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.5555\/318773.319253"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/320384.320392"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/582419.582440"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/781131.781168"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1002\/spe.370"},{"key":"e_1_2_1_14_1","volume-title":"ECOOP'01---Object-Oriented Programming, 15th European Conference. Lecture Notes in Computer Science","volume":"2072","author":"Boyland J.","unstructured":"Boyland , J. , Noble , J. , and Retert , W . 2001. Capabilities for aliasing: A generalisation of uniqueness and read-only . In ECOOP'01---Object-Oriented Programming, 15th European Conference. Lecture Notes in Computer Science , vol. 2072 . Springer Verlag, New York, 2--27. Boyland, J., Noble, J., and Retert, W. 2001. Capabilities for aliasing: A generalisation of uniqueness and read-only. In ECOOP'01---Object-Oriented Programming, 15th European Conference. Lecture Notes in Computer Science, vol. 2072. Springer Verlag, New York, 2--27."},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/949305.949339"},{"volume-title":"Proceedings of the 10th Workshop on Foundations of Object-Oriented Languages (FOOL)","author":"Clarke D.","key":"e_1_2_1_17_1","unstructured":"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.). 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.)."},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/286942.286947"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1109\/4236.978368"},{"key":"e_1_2_1_20_1","series-title":"Lecture Notes in Computer Science","volume-title":"Freenet: A distributed anonymous information storage and retrieval system. In Workshop on Design Issues in Anonymity and Unobservability","author":"Clarke I.","year":"2000","unstructured":"Clarke , I. , Sandberg , O. , Wiley, B. , and Hong, T. W. 2000 . Freenet: A distributed anonymous information storage and retrieval system. In Workshop on Design Issues in Anonymity and Unobservability . Lecture Notes in Computer Science , vol. 2009 . Springer-Verlag , New York, 46--66. Clarke, I., Sandberg, O., Wiley, B., and Hong, T. W. 2000. Freenet: A distributed anonymous information storage and retrieval system. In Workshop on Design Issues in Anonymity and Unobservability. Lecture Notes in Computer Science, vol. 2009. Springer-Verlag, New York, 46--66."},{"key":"e_1_2_1_21_1","unstructured":"Detlefs D. Leino K. Leino M. and Nelson G. 1996. Wrestling with rep exposure. Tech. rep. Digital Equipment Corporation Systems Research Center.  Detlefs D. Leino K. Leino M. and Nelson G. 1996. Wrestling with rep exposure. Tech. rep. Digital Equipment Corporation Systems Research Center."},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/215465.215594"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1016\/0743-1066(84)90014-1"},{"key":"e_1_2_1_24_1","volume-title":"Refactoring: Improving the Design of Existing Code","author":"Fowler M.","year":"1999","unstructured":"Fowler , M. , Beck , K. , Brant , J. , Opdyke , W. , and Roberts , D . 1999 . Refactoring: Improving the Design of Existing Code . Addison-Wesley . Fowler, M., Beck, K., Brant, J., Opdyke, W., and Roberts, D. 1999. Refactoring: Improving the Design of Existing Code. Addison-Wesley."},{"key":"e_1_2_1_25_1","unstructured":"Gamma E. Helm R. Johnson R. E. and Vlissides J. 1994. Design Patterns. Addison-Wesley Reading MA.  Gamma E. Helm R. Johnson R. E. and Vlissides J. 1994. Design Patterns. Addison-Wesley Reading MA."},{"key":"e_1_2_1_26_1","volume-title":"Proceedings of the 2nd Types in Compilation Workshop","volume":"1473","author":"Genius D.","unstructured":"Genius , D. , Trapp , M. , and Zimmermann , W . 1998. An approach to improve locality using sandwich types . In Proceedings of the 2nd Types in Compilation Workshop , ( Kyoto, Japan, Mar.). Lecture Notes in Computer Science , vol. 1473 . Springer-Verlag, New York, 194--214. Genius, D., Trapp, M., and Zimmermann, W. 1998. An approach to improve locality using sandwich types. In Proceedings of the 2nd Types in Compilation Workshop, (Kyoto, Japan, Mar.). Lecture Notes in Computer Science, vol. 1473. Springer-Verlag, New York, 194--214."},{"key":"e_1_2_1_27_1","series-title":"Lecture Notes in Computer Science","volume-title":"Objects, Components, Architectures, Services, and Applications for a Networked World","author":"Herrmann S.","unstructured":"Herrmann , S. 2003. Object teams: Improving modularity for crosscutting collaborations . In Objects, Components, Architectures, Services, and Applications for a Networked World . Lecture Notes in Computer Science , Springer-Verlag , New York , 248--264. Herrmann, S. 2003. Object teams: Improving modularity for crosscutting collaborations. In Objects, Components, Architectures, Services, and Applications for a Networked World. Lecture Notes in Computer Science, Springer-Verlag, New York, 248--264."},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/117954.117975"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/130943.130947"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/503502.503505"},{"volume-title":"Proceedings of TOOLS PACIFIC 95 (TOOLS 18)","author":"Kent S.","key":"e_1_2_1_31_1","unstructured":"Kent , S. and Maung , I . 1995. Encapsulation and aggregation . In Proceedings of TOOLS PACIFIC 95 (TOOLS 18) , Prentice-Hall, Englewood Cliffs, NJ, 227--238. Kent, S. and Maung, I. 1995. Encapsulation and aggregation. In Proceedings of TOOLS PACIFIC 95 (TOOLS 18), Prentice-Hall, Englewood Cliffs, NJ, 227--238."},{"key":"e_1_2_1_33_1","volume-title":"Universes: A type system for controlling representation exposure. In Programming Languages and Fundamentals of Programming","author":"M\u00fcller P.","year":"1999","unstructured":"M\u00fcller , 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\u00e4t Hagen . M\u00fcller, 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\u00e4t Hagen."},{"key":"e_1_2_1_34_1","volume-title":"ECOOP'98---Object-Oriented Programming, Eric Jul, Ed. Lecture Notes in Computer Science","volume":"1445","author":"Noble J.","unstructured":"Noble , J. , Vitek , J. , and Potter , J . 1998. Flexible alias protection . In ECOOP'98---Object-Oriented Programming, Eric Jul, Ed. Lecture Notes in Computer Science , vol. 1445 . Springer-Verlag, New York, 158--185. Noble, J., Vitek, J., and Potter, J. 1998. Flexible alias protection. In ECOOP'98---Object-Oriented Programming, Eric Jul, Ed. Lecture Notes in Computer Science, vol. 1445. Springer-Verlag, New York, 158--185."},{"volume-title":"Proceedings of the Workshop on Foundations of Object-Oriented Languages.","author":"Potanin A.","key":"e_1_2_1_35_1","unstructured":"Potanin , A. , Noble , J. , Clarke , D. and Biddle , R . 2004. Featherweight generic confinement . In Proceedings of the Workshop on Foundations of Object-Oriented Languages. Potanin, A., Noble, J., Clarke, D. and Biddle, R. 2004. Featherweight generic confinement. In Proceedings of the Workshop on Foundations of Object-Oriented Languages."},{"volume-title":"Proceedings of ECOOP'04","author":"Rustan K.","key":"e_1_2_1_36_1","unstructured":"Rustan , K. , Leino , M. , and M\u00fcller , P . 2004. Object invariants in dynamic contexts . In Proceedings of ECOOP'04 , 16th European Conference on Object-Oriented Programming, 491--516. Rustan, K., Leino, M., and M\u00fcller, P. 2004. Object invariants in dynamic contexts. In Proceedings of ECOOP'04, 16th European Conference on Object-Oriented Programming, 491--516."},{"key":"e_1_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10207-004-0049-5"},{"key":"e_1_2_1_38_1","unstructured":"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.  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."},{"key":"e_1_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1002\/spe.369"},{"key":"e_1_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1145\/353171.353177"},{"key":"e_1_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1109\/REAL.2004.51"},{"key":"e_1_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.1145\/949305.949318"}],"container-title":["ACM Transactions on Programming Languages and Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1286821.1286823","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/1286821.1286823","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T14:57:49Z","timestamp":1750258669000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1286821.1286823"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2007,10]]},"references-count":40,"journal-issue":{"issue":"6","published-print":{"date-parts":[[2007,10]]}},"alternative-id":["10.1145\/1286821.1286823"],"URL":"https:\/\/doi.org\/10.1145\/1286821.1286823","relation":{},"ISSN":["0164-0925","1558-4593"],"issn-type":[{"type":"print","value":"0164-0925"},{"type":"electronic","value":"1558-4593"}],"subject":[],"published":{"date-parts":[[2007,10]]},"assertion":[{"value":"2007-10-01","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}