Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/504282.504300acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
Article

Encapsulating objects with confined types

Published: 01 October 2001 Publication History

Abstract

Object-oriented languages provide little support for encapsulating objects. Reference semantics allows objects to escape their defining scope. The pervasive aliasing that ensues remains a major source of software defects. This paper introduces Kacheck/J a tool for inferring object encapulation properties in 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 for Java classes. A class and its sublasses are confined if all of their instances are encapsulated in their defining package. This simple property can be used to identify accidental leaks of sensitive objects. The analysis is scalable and efficient; Kacheck/J is able t infer confinement on a corpus of 46,000 classes (115 MB) in 6 minutes

References

[1]
Paulo Sergio Almeida. Ballon Types: Controlling sharing of state in data types. In ECOOP Proceedings, June 1997.
[2]
Bruno Blanchet. Escape analysis for object oriented languages. application to Java. In OPPSLA '99 ACM Conference on Object-Oriented Systems, Languages and Applications, volume 34(10) of ACM SIGPLAN Notices, pages 20-34, Denver, CO, October 1999. ACM Press.
[3]
Jeff Bogda and Urs Holzle. Removing unnecessary synchronization in Java. In OOPSLA'99 ACM Conference on Object-Oriented Systems, languages and Applications, volume 34(10) of ACM SIGPLAN Notices, pages 35-46, Denver, CO, October 1999. ACM Press.
[4]
Boris Bokowski. CoffeeStrainer: Statically-checked constraints on the definition and use of types in Java. In Proceedings of ESEC/FSE'99, Touloue, France, September, 1999.
[5]
Boris Bolowski and Jan Vitek. Cofined Types. In Proceedings 14th Annual ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA'99), Denver, Colorado, USA, November 1999.
[6]
John Boyland, James Noble, and William Retert. Capabilities for aliasing: A generalisation of uniqueness and read-only. In ECOOP'01 - Object-Oriented Programming 15th European Conference, number to appear in Lecture Notes in Computer Science, Berlin, Heidelberg, New York, 2001, Springer
[7]
David G. Clarke, Johnn M. Potter, and James Noble. Ownership types for flexible alias protection. In OOPSLA '98 Conference Proceedings, volume 33(10) of ACM SIGPLAN Notices, pages 48-64, ACM, October 1998.
[8]
D. Detlefs, K. Rustan M. Leino, and G. Nelson. Wrestling with rep exposure. Technical report, Digital Equipment Corporation Systems Research Center, 1996.
[9]
Alain Deutsch. Semantic models and abstract interpretation techniques for inductive data structure and pointers, In Proceedings of the ACM SIGPLAN Symposium on Partial Evaluation and Sematics-Based Program Manipulation, pages 226-229, La Jolla, California, June 21-23, 1995.
[10]
Daniela Genius, Martin Trapp, and Wolf Zimmermann. An approach to improve locality using Sandwich Types, In Proceedings of the 2nd Types in Compilation workshop, volume LNCS 1473, Kyoto, Japan, March 1998. Springer Verlag.
[11]
John Hogg. Islands: Aliasing protection in object-oriented languages. In OOPSLA Proceedings, November 1991.
[12]
John Hogg, Doug Lea, Alan Wills, Dennis deChampeaux, and Richard Holt. The Geneva convention on the treatment of object aliasing. OOPS Messenger, 3(2), April 1992.
[13]
S.J.H. Kent and I. Maung. Encapsulation and Aggregation. In Proceedings of TOOLS PACIFIC 95 (TOOLS 18), Prentice-hall, 1995.
[14]
Sun Micorsystems. Support for extensions and applications in the version 1.2 of the Java platform 2000.
[15]
James Noble, John Potter, and Jan Vitek. Flexible alias protection. In Proceedings of ECOOP'98 volume 1543 of LNCS, Brussels, Belgium, July 20-24 1998. Springer-Verlag.
[16]
Ayal Zaks, Vitaly Feldman, and Nava Aizikowitz. Sealed calls in Java packages. In OOPSLA '2000 Conference Proceedings, ACM SIGPLAN Notices. ACM, October 2000.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
OOPSLA '01: Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
October 2001
382 pages
ISBN:1581133359
DOI:10.1145/504282
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 October 2001

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Conference

OOPSLA01
Sponsor:

Acceptance Rates

OOPSLA '01 Paper Acceptance Rate 27 of 145 submissions, 19%;
Overall Acceptance Rate 268 of 1,244 submissions, 22%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)3
  • Downloads (Last 6 weeks)0
Reflects downloads up to 15 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2018)A Framework for the Inference of Sensing Measurements Based on CorrelationACM Transactions on Sensor Networks10.1145/327203515:1(1-28)Online publication date: 15-Dec-2018
  • (2018)FIRSTACM Transactions on Sensor Networks10.1145/326710515:1(1-35)Online publication date: 15-Dec-2018
  • (2018)DISHACM Transactions on Sensor Networks10.1145/324105215:1(1-28)Online publication date: 15-Dec-2018
  • (2017)SWIMACM Transactions on Information Systems10.1145/307265236:1(1-33)Online publication date: 19-Aug-2017
  • (2014)A fully abstract trace-based semantics for reasoning about backward compatibility of class librariesScience of Computer Programming10.1016/j.scico.2013.10.00292(129-161)Online publication date: Oct-2014
  • (2013)Formalization of UML Composition in OCLInternational Journal of Software Innovation10.4018/ijsi.20130101031:1(26-40)Online publication date: 1-Jan-2013
  • (2013)Confinement framework for encapsulating objectsFrontiers of Computer Science: Selected Publications from Chinese Universities10.1007/s11704-013-1259-77:2(236-256)Online publication date: 1-Apr-2013
  • (2013)Heap decomposition inference with linear programmingProceedings of the 27th European conference on Object-Oriented Programming10.1007/978-3-642-39038-8_5(104-128)Online publication date: 1-Jul-2013
  • (2013)AverroesProceedings of the 27th European conference on Object-Oriented Programming10.1007/978-3-642-39038-8_16(378-400)Online publication date: 1-Jul-2013
  • (2012)A type system for checking specialization of packages in object-oriented programmingProceedings of the 27th Annual ACM Symposium on Applied Computing10.1145/2245276.2232058(1737-1742)Online publication date: 26-Mar-2012
  • Show More Cited By

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media