Skip to main content

Flexible alias protection

  • Conference paper
  • First Online:

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

Abstract

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.

This is a preview of subscription content, log in via an institution.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Martín Abadi and Luca Cardelli. A Theory of Objects. Springer-Verlag, 1996.

    Google Scholar 

  2. Paulo Sérgio Almeida. Balloon Types: Controlling sharing of state in data types. In ECOOP Proceedings, June 1997.

    Google Scholar 

  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. 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. 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. 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. Craig Chambers. The Cecil language: Specification & Rationale. Technical Report Version 2.7, University of Washington, March 1997.

    Google Scholar 

  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. Franco Civello. Roles for composite objects in object-oriented analysis and design. In OOPSLA Proceedings, 1993.

    Google Scholar 

  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. Jin Song Dong and Roger Duke. Exclusive control within object oriented systems. In TOOLS Pacific 18, 1995.

    Google Scholar 

  12. Erich Gamma, Richard Helm, Ralph E. Johnson, and John Vlissides. Design Patterns. Addison-Wesley, 1994.

    Google Scholar 

  13. T. Goldstein. The gateway security model in the Java electronic commerce framework. Technical report, Sun Microsystems Laboratories — Javasoft, December 1996.

    Google Scholar 

  14. James Gosling, Bill Joy, and Guy Steele. The Java Language Specification. Addison-Wesley, 1996.

    Google Scholar 

  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. 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. 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. 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. John Hogg. Islands: Aliasing protection in object-oriented languages. In OOPSLA Proceedings, November 1991.

    Google Scholar 

  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. David Holmes, James Noble, and John Potter. Aspects of synchronisation. In TOOLS Pacific 25, 1997.

    Google Scholar 

  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. Stuart Kent and John Howse. Value types in Eiffel. In TOOLS 19, Paris, 1996.

    Google Scholar 

  24. Stuart Kent and Ian Maung. Encapsulation and aggregation. In TOOLS Pacific 18, 1995.

    Google Scholar 

  25. Brian Kernighan. Why Pascal is not my favourite programming language. Technical Report 100, Bell Labs, 1983.

    Google Scholar 

  26. William Landi. Undecidability of static analysis. ACM Letters on Programming Languages and Systems, 1(4), December 1992.

    Google Scholar 

  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. 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. B. J. MacLennan. Values and objects in programming languages. ACM SIGPLAN Notices, 17(12), December 1982.

    Google Scholar 

  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. 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. Naftaly Minsky. Towards alias-free pointers. In ECOOP Proceedings, July 1996.

    Google Scholar 

  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. 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. John C. Reynolds. Syntatic control of interference. In 5th ACM Symposium on Principles of Programming Languages, January 1978.

    Google Scholar 

  36. Bjarne Stroustrup. The C++ Programming Language. Addison-Wesley, 1986.

    Google Scholar 

  37. Bjarne Stroustrup. The Design and Evolution of C++. Addison-Wesley, 1994.

    Google Scholar 

  38. Mark Utting. Reasoning about aliasing. In The Fourth Australasian Refinement Workshop, 1995.

    Google Scholar 

  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. William C. Wake. Account number: A pattern. In Pattern Languages of Program Design, volume 1. Addison-Wesley, 1995.

    Google Scholar 

  41. Alan Cameron Wills. Formal Methods applied to Object-Oriented Programming. PhD thesis, University of Manchester, 1992.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Eric Jul

Rights and permissions

Reprints and permissions

Copyright information

© 1998 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Noble, J., Vitek, J., Potter, J. (1998). Flexible alias protection. In: Jul, E. (eds) ECOOP’98 — Object-Oriented Programming. ECOOP 1998. Lecture Notes in Computer Science, vol 1445. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0054091

Download citation

  • DOI: https://doi.org/10.1007/BFb0054091

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-64737-9

  • Online ISBN: 978-3-540-69064-1

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics