Aliasing, Confinement, and Ownership in Object-Oriented Programming

  • Dave Clarke
  • Sophia Drossopoulou
  • James Noble
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3013)

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 analyse. Aliasing makes objects depend on their environment in unpredictable ways, breaking the encapsulation necessary for reliable software components, thus making it difficult to reason about and optimise 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, analysing, and preventing the connections between objects and the flow of information between them.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [ACN02]
    Aldrich, J., Chambers, C., Notkin, D.: ArchJava: Connecting software architecture to implementation. In: ICSE (May 2002)Google Scholar
  2. [AKC02]
    Aldrich, J., Kostadinov, V., Chambers, C.: Alias annotations for program understanding. In: OOPSLA Proceedings (November 2002)Google Scholar
  3. [BDF+03]
    Barnett, M., DeLine, R., Fähndrich, M., Rustan, K., Leino, M., Schulte, W.: Verification of object-oriented programs with invariants. In: Formal Techniques for Java-like Programs (July 2003)Google Scholar
  4. [BLR02]
    Boyapati, C., Lee, R., Rinard, M.: Ownership types for safe programming: Preventing data races and deadlocks. In: OOPSLA Proceedings (November 2002)Google Scholar
  5. [BLS02]
    Boyapati, C., Liskov, B., Shrira, L.: Ownership types and safe lazy upgrades in object-oriented databases. Technical Report MIT-LCS-TR-858, Laboratory for Computer Science, MIT (July 2002)Google Scholar
  6. [BN02]
    Banerjee, A., Naumann, D.A.: Representation independence, confinement, and access control. In: Proceedings of the 29th ACM Symposium on Principles of Programming Languages (POPL 2002), Portland, Oregon (January 2002)Google Scholar
  7. [BR01]
    Boyapati, C., Rinard, M.: A parameterized type system for race-free Java programs. In: OOPSLA Proceedings (2001)Google Scholar
  8. [BSBR03]
    Boyapati, C., Salcianu, A., Beebee, W., Rinard, M.: Ownership types for safe region-based memory management in real-time java. In: ACM SIGPLAN 2003 Conference on Programming Language Design and Implementation (PLDI) (June 2003)Google Scholar
  9. [Cla03]
    Clarke, D. (ed.): Proceedings of the First International Workshop on Aliasing, Confinement and Ownership in Object-oriented Programming (IWACO), Number UU-CS-2003-030. Utrecht University (July 2003)Google Scholar
  10. [CPN98]
    Clarke, D., Potter, J., Noble, J.: Ownership types for flexible alias protection. In: OOPSLA Proceedings (1998)Google Scholar
  11. [CW03]
    Clarke, D., Wrigstad, T.: External uniqueness is unique enough. In: Cardelli, L. (ed.) ECOOP 2003. LNCS, vol. 2743, Springer, Heidelberg (2003)Google Scholar
  12. [FD02]
    Fähndrich, M., DeLine, R.: Adoption and focus: Practical linear types for imperative programming. In: Proceedings of the ACM Conference on Programming Language Design and Implementation (June 2002)Google Scholar
  13. [HLW+92]
    Hogg, J., Lea, D., Wills, A., de Champeaux, D., Holt, R.: The Geneva convention on the treatment of object aliasing. OOPS Messenger 3(2) (April 1992)Google Scholar
  14. [IO01]
    Ishtiaq, S., O’Hearn, P.W.: BI as an assertion language for mutable data structures. In: 28th ACM Symposium on Principles of Programming Languages (January 2001)Google Scholar
  15. [MPH99]
    Müller, P., Poetzsch-Heffter, A.: Universes: A type system for controlling representation exposure. In: Poetzsch-Heffter, A., Meyer, J. (eds.) Programming Languages and Fundamentals of Programming. Fernuniversität Hagen (1999)Google Scholar
  16. [O’H02]
    O’Hearn, P.: Notes on separation logic for shared-variable concurrency (January 2002)Google Scholar
  17. [SS02]
    Skalka, C., Smith, S.: Static use-based object confinement. In: Proceedings of the Foundations of Computer Security Workshop (FCS 2002), Copenhagen, Denmark (July 2002)Google Scholar
  18. [SY86]
    Strom, R.E., Yemeni, S.: Typestate: A progamming language concept for enhancing software reliability. IEEE Transactions on Software Engineering SE-12(1), 157–170 (1986)Google Scholar
  19. [VB01]
    Vitek, J., Bokowski, B.: Confined types in Java. Software Practice and Experience 31(6), 507–532 (2001)MATHCrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2004

Authors and Affiliations

  • Dave Clarke
    • 1
  • Sophia Drossopoulou
    • 2
  • James Noble
    • 3
  1. 1.Utrecht UniversityThe Netherlands
  2. 2.Imperial CollegeLondonUK
  3. 3.Victoria University of WellingtonNew Zealand

Personalised recommendations