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.
Preview
Unable to display preview. Download preview PDF.
References
Martín Abadi and Luca Cardelli. A Theory of Objects. Springer-Verlag, 1996.
Paulo Sérgio Almeida. Balloon Types: Controlling sharing of state in data types. In ECOOP Proceedings, June 1997.
Pierre America and Frank de Boer. A sound and complete proof system for SPOOL. Technical Report Technical Report 505, Philips Research Laboratories, 1990.
Henry G. Baker.’ Use-once’ variables and linear objects — storage management, reflection and multi-threading. ACM SIGPLAN Notices, 30(1), January 1995.
Edwin Blake and Steve Cook. On including part hierarchies in object-oriented languages, with an implementation in Smalltalk. In ECOOP Proceedings, 1987.
Alan Borning. The programming language aspects of ThingLab, a constraint-oriented simulation laboratory. ACM Transactions on Programming Languages and Systems, 3(4), October 1981.
Craig Chambers. The Cecil language: Specification & Rationale. Technical Report Version 2.7, University of Washington, March 1997.
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.
Franco Civello. Roles for composite objects in object-oriented analysis and design. In OOPSLA Proceedings, 1993.
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.
Jin Song Dong and Roger Duke. Exclusive control within object oriented systems. In TOOLS Pacific 18, 1995.
Erich Gamma, Richard Helm, Ralph E. Johnson, and John Vlissides. Design Patterns. Addison-Wesley, 1994.
T. Goldstein. The gateway security model in the Java electronic commerce framework. Technical report, Sun Microsystems Laboratories — Javasoft, December 1996.
James Gosling, Bill Joy, and Guy Steele. The Java Language Specification. Addison-Wesley, 1996.
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.
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.
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.
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.
John Hogg. Islands: Aliasing protection in object-oriented languages. In OOPSLA Proceedings, November 1991.
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.
David Holmes, James Noble, and John Potter. Aspects of synchronisation. In TOOLS Pacific 25, 1997.
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.
Stuart Kent and John Howse. Value types in Eiffel. In TOOLS 19, Paris, 1996.
Stuart Kent and Ian Maung. Encapsulation and aggregation. In TOOLS Pacific 18, 1995.
Brian Kernighan. Why Pascal is not my favourite programming language. Technical Report 100, Bell Labs, 1983.
William Landi. Undecidability of static analysis. ACM Letters on Programming Languages and Systems, 1(4), December 1992.
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.
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.
B. J. MacLennan. Values and objects in programming languages. ACM SIGPLAN Notices, 17(12), December 1982.
Ole Lehrmann Madsen, Birger Møller-Pedersen, and Kirsten Nygaard. Object-Oriented Programming in the BETA Programming Language. Addison-Wesley, 1993.
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.
Naftaly Minsky. Towards alias-free pointers. In ECOOP Proceedings, July 1996.
James Noble and John Potter. Change detection for aggregate objects with aliasing. In Australian Software Engineering Conference, Sydney, Australia, 1997. IEEE Press.
Martin Odersky and Philip Wadler. Pizza into Java: Translating theory into practice. In Proc. 24th ACM Symposium on Principles of Programming Languages, January 1997.
John C. Reynolds. Syntatic control of interference. In 5th ACM Symposium on Principles of Programming Languages, January 1978.
Bjarne Stroustrup. The C++ Programming Language. Addison-Wesley, 1986.
Bjarne Stroustrup. The Design and Evolution of C++. Addison-Wesley, 1994.
Mark Utting. Reasoning about aliasing. In The Fourth Australasian Refinement Workshop, 1995.
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.
William C. Wake. Account number: A pattern. In Pattern Languages of Program Design, volume 1. Addison-Wesley, 1995.
Alan Cameron Wills. Formal Methods applied to Object-Oriented Programming. PhD thesis, University of Manchester, 1992.
Author information
Authors and Affiliations
Editor information
Rights 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