Flexible alias protection

Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1445)


Aliasing is endemic in object oriented programming. Because an object can be modified via any alias, object oriented programs are hard to understand, maintain, and analyse. Flexible alias protection is a conceptual model of inter-object relationships which limits the visibility of changes via aliases, allowing objects to be aliased but mitigating the undesirable effects of aliasing. Flexible alias protection can be checked statically using programmer supplied aliasing modes and imposes no runtime overhead. Using flexible alias protection, programs can incorporate mutable objects, immutable values, and updatable collections of shared objects, in a natural object oriented programming style, while avoiding the problems caused by aliasing.


Hash Table Representation Object Clean Object Read Mode Aggregate Object 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Martín Abadi and Luca Cardelli. A Theory of Objects. Springer-Verlag, 1996.Google Scholar
  2. 2.
    Paulo Sérgio Almeida. Balloon Types: Controlling sharing of state in data types. In ECOOP Proceedings, June 1997.Google Scholar
  3. 3.
    Pierre America and Frank de Boer. A sound and complete proof system for SPOOL. Technical Report Technical Report 505, Philips Research Laboratories, 1990.Google Scholar
  4. 4.
    Henry G. Baker.’ Use-once’ variables and linear objects — storage management, reflection and multi-threading. ACM SIGPLAN Notices, 30(1), January 1995.Google Scholar
  5. 5.
    Edwin Blake and Steve Cook. On including part hierarchies in object-oriented languages, with an implementation in Smalltalk. In ECOOP Proceedings, 1987.Google Scholar
  6. 6.
    Alan Borning. The programming language aspects of ThingLab, a constraint-oriented simulation laboratory. ACM Transactions on Programming Languages and Systems, 3(4), October 1981.Google Scholar
  7. 7.
    Craig Chambers. The Cecil language: Specification & Rationale. Technical Report Version 2.7, University of Washington, March 1997.Google Scholar
  8. 8.
    Edwin C. Chan, John T. Boyland, and William L. Scherlis. Promises: Limitied specifications for analysis and manipulation. In IEEE International Conference on Software Engineering (ICSE), 1998.Google Scholar
  9. 9.
    Franco Civello. Roles for composite objects in object-oriented analysis and design. In OOPSLA Proceedings, 1993.Google Scholar
  10. 10.
    Alain Deutsch. Interprocedural May-Alias Analysis for Pointers: Beyond k-limiting. In Proceedigns of the ACM SIGPLAN'94 Conference on Programming Language Design and Implementation, June 1994.Google Scholar
  11. 11.
    Jin Song Dong and Roger Duke. Exclusive control within object oriented systems. In TOOLS Pacific 18, 1995.Google Scholar
  12. 12.
    Erich Gamma, Richard Helm, Ralph E. Johnson, and John Vlissides. Design Patterns. Addison-Wesley, 1994.Google Scholar
  13. 13.
    T. Goldstein. The gateway security model in the Java electronic commerce framework. Technical report, Sun Microsystems Laboratories — Javasoft, December 1996.Google Scholar
  14. 14.
    James Gosling, Bill Joy, and Guy Steele. The Java Language Specification. Addison-Wesley, 1996.Google Scholar
  15. 15.
    Peter Grogono and Patrice Chalin. Copying, sharing, and aliasing. In Proceedings of the Colloquium on Object Orientation in Databases and Software Engineering (COODBSE'94), Montreal, Quebec, May 1994.Google Scholar
  16. 16.
    Daniel Hagimont, J. Mossière, Xavier Rousset de Pina, and F. Saunier. Hidden software capabilities. In 16th International Conference on Distributed Computing System, Hong Kong, May 1996. IEEE CS Press.Google Scholar
  17. 17.
    Douglas E. Harms and Bruce W. Weide. Copying and swapping: Influences on the design of reusable software components. IEEE Transactions on Software Engineering, 17(5), May 1991.Google Scholar
  18. 18.
    Laurie J. Hendren and G. R. Gao. Designing programming languages for analyzability: A fresh look at pointer data structures. In Proceedings of the IEEE 1992 International Conference on Programming Languages, April 1992.Google Scholar
  19. 19.
    John Hogg. Islands: Aliasing protection in object-oriented languages. In OOPSLA Proceedings, November 1991.Google Scholar
  20. 20.
    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.Google Scholar
  21. 21.
    David Holmes, James Noble, and John Potter. Aspects of synchronisation. In TOOLS Pacific 25, 1997.Google Scholar
  22. 22.
    Neil D. Jones and Steven Muchnick. Flow analysis and optimization of LISP-like structures. In Steven Muchnick and Neil D. Jones, editors, Program Flow Analysis: Theory and Applications. Prentice Hall, 1981.Google Scholar
  23. 23.
    Stuart Kent and John Howse. Value types in Eiffel. In TOOLS 19, Paris, 1996.Google Scholar
  24. 24.
    Stuart Kent and Ian Maung. Encapsulation and aggregation. In TOOLS Pacific 18, 1995.Google Scholar
  25. 25.
    Brian Kernighan. Why Pascal is not my favourite programming language. Technical Report 100, Bell Labs, 1983.Google Scholar
  26. 26.
    William Landi. Undecidability of static analysis. ACM Letters on Programming Languages and Systems, 1(4), December 1992.Google Scholar
  27. 27.
    K. Rustan M. Leino and Raymie Stata. Virginity: A contribution to the specification of object-oriented software. Technical Report SRC-TN-97-001, Digital Systems Research Center, April 1997.Google Scholar
  28. 28.
    John M. Lucassen and David K. Gifford. Polymorphic effect systems. In Proceedings of the Eighteenth Annual ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, January 1988.Google Scholar
  29. 29.
    B. J. MacLennan. Values and objects in programming languages. ACM SIGPLAN Notices, 17(12), December 1982.Google Scholar
  30. 30.
    Ole Lehrmann Madsen, Birger Møller-Pedersen, and Kirsten Nygaard. Object-Oriented Programming in the BETA Programming Language. Addison-Wesley, 1993.Google Scholar
  31. 31.
    S. Matsuoka, K. Wakita, and A. Yonezawa. Sychronisation constraints with inheritance: What is not possible? — so what is? Technical report, Dept. of Information Science, University of Tokyo, 1990.Google Scholar
  32. 32.
    Naftaly Minsky. Towards alias-free pointers. In ECOOP Proceedings, July 1996.Google Scholar
  33. 33.
    James Noble and John Potter. Change detection for aggregate objects with aliasing. In Australian Software Engineering Conference, Sydney, Australia, 1997. IEEE Press.Google Scholar
  34. 34.
    Martin Odersky and Philip Wadler. Pizza into Java: Translating theory into practice. In Proc. 24th ACM Symposium on Principles of Programming Languages, January 1997.Google Scholar
  35. 35.
    John C. Reynolds. Syntatic control of interference. In 5th ACM Symposium on Principles of Programming Languages, January 1978.Google Scholar
  36. 36.
    Bjarne Stroustrup. The C++ Programming Language. Addison-Wesley, 1986.Google Scholar
  37. 37.
    Bjarne Stroustrup. The Design and Evolution of C++. Addison-Wesley, 1994.Google Scholar
  38. 38.
    Mark Utting. Reasoning about aliasing. In The Fourth Australasian Refinement Workshop, 1995.Google Scholar
  39. 39.
    Jan Vitek, Manuel Serrano, and Dimitri Thanos. Security and communication in mobile object systems. In J. Vitek and C. Tschudin, editors, Mobile Object Systems: Towards the Programmable Internet., LNCS 1222. Springer-Verlag, April 1997.Google Scholar
  40. 40.
    William C. Wake. Account number: A pattern. In Pattern Languages of Program Design, volume 1. Addison-Wesley, 1995.Google Scholar
  41. 41.
    Alan Cameron Wills. Formal Methods applied to Object-Oriented Programming. PhD thesis, University of Manchester, 1992.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1998

Authors and Affiliations

  1. 1.Microsoft Research InstituteMacquarie UniversitySydney
  2. 2.Object Systems GroupUniversité de GenèveGeneva

Personalised recommendations