Abstract
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.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Beckman, N., Bierhoff, K., Aldrich, J.: Verifying correct usage of atomic blocks and typestate. In: Kiczales, G. (ed.) Object-Oriented Programing, Systems, Languages, and Applications (OOPSLA). ACM SIGPLAN Notices. ACM Press, New York (2008) (to appear)
Berdine, J., Calcagno, C., O’Hearn, P.W.: Smallfoot: Modular automatic assertion checking with separation logic. In: de Boer, F.S., Bonsangue, M.M., Graf, S., de Roever, W.-P. (eds.) FMCO 2005. LNCS, vol. 4111, pp. 115–137. Springer, Heidelberg (2006)
Bierhoff, K., Aldrich, J.: Modular typestate checking of aliased objects. In: Object-Oriented Programing, Systems, Languages, and Applications (OOPSLA). ACM SIGPLAN Notices. ACM Press, New York (2007)
Bierhoff, K., Aldrich, J.: PLURAL: Checking protocol compliance under aliasing. In: Demonstration in ICSE Companion, pp. 971–972 (2008)
Boyland, J.: Checking interference with fractional permissions. In: Cousot, R. (ed.) SAS 2003. LNCS, vol. 2694, pp. 55–72. Springer, Heidelberg (2003)
Boyland, J.: Why we should not add readonly to java (yet). Journal of Object Technology 5(5), 5–29 (2006)
Boyland, J., Noble, J., Retert, W.: Capabilities for Sharing: A Generalization of Uniqueness and Read-Only. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, p. 2. Springer, Heidelberg (2001)
Brookes, S.: A semantics for concurrent separation logic. Theor. Comput. Sci. 375(1-3), 227–270 (2007)
Clarke, D.: Object Ownership and Containment. PhD thesis, University of New South Wales (2001)
Clarke, D., Drossopoulou, S., Noble, J.: Aliasing, confinement, and ownership in object-oriented programming. In: Buschmann, F., Buchmann, A., Cilia, M.A. (eds.) ECOOP 2003. LNCS, vol. 3013, pp. 197–207. Springer, Heidelberg (2004)
Clarke, D., Drossopoulou, S., Noble, J., Wrigstad, T.: Aliasing, confinement, and ownership in object-oriented programming. In: Cebulla, M. (ed.) ECOOP-WS 2007. LNCS, vol. 4906, pp. 40–49. Springer, Heidelberg (2008)
Clarke, D., Wrigstad, T.: External uniqueness is unique enough. In: Cardelli, L. (ed.) ECOOP 2003. LNCS, vol. 2743, pp. 176–200. Springer, Heidelberg (2003)
Clarke, D.G., Potter, J.M., Noble, J.: Ownership types for flexible alias protection. In: Object-Oriented Programing, Systems, Languages, and Applications (OOPSLA). ACM SIGPLAN Notices, vol. 33(10), pp. 48–64. ACM Press, New York (1998)
Dietl, W., Drossopoulou, S., Müller, P.: Generic Universe Types. In: Ernst, E. (ed.) ECOOP 2007. LNCS, vol. 4609, pp. 28–53. Springer, Heidelberg (2007)
Dietl, W., Müller, P.: Universes: Lightweight ownership for JML. Journal of Object Technology (JOT) 4(8), 5–32 (2005)
Distefano, D., O’Hearn, P.W., Yang, H.: A local shape analysis based on separation logic. In: Hermanns, H., Palsberg, J. (eds.) TACAS 2006. LNCS, vol. 3920, pp. 238–252. Springer, Heidelberg (2006)
Distefano, D., Parkinson, M.J.: jStar: Towards practical verification for Java. In: Kiczales, G. (ed.) Object-Oriented Programing, Systems, Languages, and Applications (OOPSLA). ACM SIGPLAN Notices. ACM Press, New York (2008) (to appear)
Haack, C., Hurlin, C.: Separation logic contracts for a java-like language with fork/Join. In: Meseguer, J., Roşu, G. (eds.) AMAST 2008. LNCS, vol. 5140, pp. 199–215. Springer, Heidelberg (2008)
Hogg, J., Lea, D., Wills, A., de Champeaux, D., Holt, R.: The Geneva Convention on the treatment of object aliasing. OOPS Messenger 3(2), 11–16 (1992)
Leavens, G.T., Poll, E., Clifton, C., Cheon, Y., Ruby, C., Cok, D., Müller, P., Kiniry, J., Chalin, P., Zimmerman, D.M.: JML reference manual. Department of Computer Science, Iowa State University (2008), www.jmlspecs.org
Leino, K.R.M.: Data groups: Specifying the modification of extended state. In: Object-Oriented Programing, Systems, Languages, and Applications (OOPSLA). ACM SIGPLAN Notices, vol. 33(10), pp. 144–153 (1998)
Leino, K.R.M., Müller, P.: Object invariants in dynamic contexts. In: Odersky, M. (ed.) ECOOP 2004. LNCS, vol. 3086, pp. 491–516. Springer, Heidelberg (2004)
Liu, Y., Milanova, A.: Ownership and immutability inference for uml-based object access control. In: International Conference on Software Engineering (ICSE), pp. 323–332. IEEE Computer Society, Los Alamitos (2007)
Müller, P., Rudich, A.: Ownership transfer in Universe Types. In: Object-Oriented Programing, Systems, Languages, and Applications (OOPSLA), pp. 461–478. ACM Press, New York (2007)
Noble, J., Vitek, J., Potter, J.: Flexible alias protection. In: Jul, E. (ed.) ECOOP 1998. LNCS, vol. 1445, pp. 158–185. Springer, Heidelberg (1998)
Östlund, J., Wrigstad, T., Clarke, D., Åkerblom, B.: Ownership, uniqueness, and immutability. In: Paige, R., Meyer, B. (eds.) TOOLS Europe. LNBIP, vol. 11, pp. 178–197. Springer, Heidelberg (2008)
Parkinson, M.J.: Class invariants: the end of the road. In: IWACO (2007)
Parkinson, M.J., Bierman, G.: Separation logic, abstraction, and inheritance. In: Principles of Programming Languages (POPL), pp. 75–86. ACM Press, New York (2005)
Potanin, A., Noble, J., Clarke, D., Biddle, R.: Generic ownership for generic java. In: Cook, W. (ed.) Object-Oriented Programing, Systems, Languages, and Applications (OOPSLA). ACM SIGPLAN Notices, vol. 41(10), pp. 311–324. ACM Press, New York (2006)
DeLine, R., Fähndrich, M.: Typestates for objects. In: Odersky, M. (ed.) ECOOP 2004. LNCS, vol. 3086, pp. 465–490. Springer, Heidelberg (2004)
Zibin, Y., Potanin, A., Ali, M., Artzi, S., Kieżun, A., Ernst, M.D.: Object and reference immutability using java generics. In: European software engineering conference and foundations of software engineering (ESEC-FSE), pp. 75–84. ACM Press, New York (2007)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2009 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Clarke, D., Drossopoulou, S., Müller, P., Noble, J., Wrigstad, T. (2009). Aliasing, Confinement, and Ownership in Object-Oriented Programming. In: Eugster, P. (eds) Object-Oriented Technology. ECOOP 2008 Workshop Reader. ECOOP 2008. Lecture Notes in Computer Science, vol 5475. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-02047-6_4
Download citation
DOI: https://doi.org/10.1007/978-3-642-02047-6_4
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-02046-9
Online ISBN: 978-3-642-02047-6
eBook Packages: Computer ScienceComputer Science (R0)