Abstract
Object-oriented programming languages allow inter-object aliasing. Although necessary to construct linked data structures and networks of interacting objects, aliasing is problematic in that an aggregate object's state can change via an alias to one of its components, without the aggregate being aware of any aliasing.Ownership types form a static type system that indicates object ownership. This provides a flexible mechanism to limit the visibility of object references and restrict access paths to objects, thus controlling a system's dynamic topology. The type system is shown to be sound, and the specific aliasing properties that a system's object graph satisfies are formulated and proven invariant for well-typed programs.
- 1 Martin Abadi and Luca Cardelli. A Theory of Objects. Springer-Verlag, 1996. Google ScholarDigital Library
- 2 Alfred V. Aho, John E. Hopcroft, and Jeffrey D. Ullman. The design and analysis of computer algorithms. Addison-Wesley, 1974. Google ScholarDigital Library
- 3 Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman. Compilers: Principles, Techniques, and Tools. Addison-Wesley, 1986. Google ScholarDigital Library
- 4 Paulo S6rgio Almeida. Balloon Types: Controlling sharing of state in data types. In ECOOP Proceedings, June 1997.Google Scholar
- 5 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
- 6 Henry G. Baker. 'Use-once' variables and linear objects - storage management, reflection and multi-threading. A CM SIGPLAN Notices, 30(1), January 1995. Google ScholarDigital Library
- 7 Edwin Blake and Steve Cook. On including part hierarchies in object-oriented languages, with an implementation in Smalltalk. In ECOOP Proceedings, 1987. Google ScholarDigital Library
- 8 Alan Borning. The programming language aspects of ThingLab, a constraint-oriented simulation laboratory. A CM Transactions on Programming Languages and Systems, 3(4), October 1981. Google ScholarDigital Library
- 9 Kim B. Bruce, Luca Cardelli, and Benjamin C. Pierce. Comparing Object Encodings. in Theoretical Aspects of Computer Software (TACS'97), LNCS 1281, pages 415-438, 1997. Google Scholar
- 10 Luca Cardelli and Andrew D. Gordon. Mobile Ambients. In Foundations of Software Science and Computation Structures, European joint Conferences on Theory and Practice of Software, March 1998. Google ScholarDigital Library
- 11 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 ScholarDigital Library
- 12 Franco Civello. Roles for composite objects in objectoriented analysis and design. In OOPSLA Proceedings, 1993. Google ScholarDigital Library
- 13 Alain Deutsch. Interprocedural May-Alias Analysis for Pointers: Beyond k-limiting. In Proceedigns of the A CM SIGPLAN'9,~ Conference on Programming Language Design and Implementation, June 1994. Google ScholarDigital Library
- 14 Jin Song Dong and Roger Duke. Exclusive control within object oriented systems. In TOOLS Pacific 18, 1995.Google Scholar
- 15 Margaret Ellis and Bjarne Stroustrup. The Annotated C++ Reference Manual. Addison-Wesley, 1990. Google ScholarDigital Library
- 16 Matthew Flatt, Shriram Krishnamurthi, and Matthias Felleisen. Classes and Mixins. In 25th A CM conference on Principles of Programming Languages, January 1998. Google ScholarDigital Library
- 17 A. Goldberg and D. Robson. SmaUtalk-80: The Language and its Implementation. Adison-Wesley, 1983. Google ScholarDigital Library
- 18 James Gosling, Bill joy, and Guy Steele. The Java Language Specification. Addison-Wesley, 1996. Google ScholarDigital Library
- 19 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
- 20 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 ScholarDigital Library
- 21 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 ScholarCross Ref
- 22 Matthew Hennessy and James Riely. Resource Control in Systems of Mobile Agents. Technical Report 2/98, University of Sussex, February 1998.Google ScholarCross Ref
- 23 John Hogg. Islands: Aliasing protection in objectoriented languages. In OOPSLA Proceedings, November 1991. Google ScholarDigital Library
- 24 John Hogg, Doug Lea, Alan Wills, Dennis de Champeaux, and Richard Holt. The Geneva convention on the treatment of object aliasing. OOPS Messenger, 3(2), April 1992. Google ScholarDigital Library
- 25 Stuart Kent and John Howse. Value types in Eiffel. In TOOLS 19, Paris, 1996.Google Scholar
- 26 Stuart Kent and ian Maung. Encapsulation and aggregation. In TOOLS Pacific 18, 1995.Google Scholar
- 27 William Landi. Undecidability of static analysis. A CM Letters on Programming Languages and Systems, 1(4), December 1992. Google ScholarDigital Library
- 28 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
- 29 Xavier Leroy and Fran(iois Rouaix. Security properies of type applets. In 25th A CM conference on Principles of Programming Languages, January 1998. Google ScholarDigital Library
- 30 John M. Lucassen and David K. Gifford. Polymorphic effect systems. In Proceedings of the Eighteenth Annual A CM SIGA CT-SIGPLAN Symposium on Principles of Programming Languages, January 1988. Google ScholarDigital Library
- 31 B. J. MacLennan. Values and objects in programming languages. A CM SIGPLAN Notices, 17(12), December 1982. Google ScholarDigital Library
- 32 Bertrand Meyer. Eiffel: The Language. Prentice Hall, 1992. Google ScholarDigital Library
- 33 Robin Milner, Joachim Parrow, and David Walker. A calculus of mobile processes, Parts I and II. Information and Computation, 100:1-77, September 1992. Google ScholarDigital Library
- 34 Naftaly Minsky. Towards alias-free pointers. In ECOOP Proceedings, July 1996. Google ScholarDigital Library
- 35 J. Gregory Morrisett. Refining First-Class Stores. In A CM SIGPLAN Worshop on State in Programming Languages, 1993.Google Scholar
- 36 Hanne Riis Nielson and Flemming Nielson. Semantics with Applications: a formal introduction. Wiley, 1992. Google ScholarDigital Library
- 37 James Noble and John Potter. Change detection for aggregate objects with aliasing. In Australian Software Engineering Conference, Sydney, Australia, 1997. IEEE Press. Google ScholarDigital Library
- 38 James Noble, Jan Vitek, and John Potter. Flexible alias protection. In ECOOP Proceedings, 1998. Google ScholarDigital Library
- 39 Martin Odersky and Philip Wadler. Pizza into Java: Translating theory into practice. In Proc. 24th A CM Symposium on Principles of Programming Languages, January 1997. Google ScholarDigital Library
- 40 John Potter, James Noble, and David Clarke. The ins and outs of objects. In Australian Software Engineering Conference, Adelaide, Australia, November 1998. IEEE Press. to appear. Google ScholarDigital Library
- 41 John C. Reynolds. Syntatic control of interference. In 5th A CM Symposium on Principles of Programming Languages, January 1978. Google ScholarDigital Library
- 42 Jon G. Riecke and Chrisopher A. Stone. Privacy via Subsumption. In Fifth Workshop on Foundations of Object-Oriented Languages, 1998.Google Scholar
- 43 James Rumbaugh, Michael Blaha, William Premerlani, Frederick Eddy, and William Lorensen. Object-Oriented Modeling and Design. Prentice Hall, 1991. Google ScholarDigital Library
- 44 Amr Sabry and Matthias Felleisen. Reasoning about programs in continuation-passing style. In 1992 A CM Conference on LISP and Functional Programming, pages 288-298, San Francisco, CA, June 1992. ACM. Google ScholarDigital Library
- 45 Mads Tofte and Jean-Pierre Talpin. Region-Based Memory Management. Information and Computation, 132(2):109-176, 1997. Google ScholarDigital Library
- 46 Mark Utting. Reasoning about aliasing. In The Fourth Australasian Refinement Workshop, 1995.Google Scholar
Index Terms
- Ownership types for flexible alias protection
Recommendations
Ownership types for flexible alias protection
OOPSLA '98: Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applicationsObject-oriented programming languages allow inter-object aliasing. Although necessary to construct linked data structures and networks of interacting objects, aliasing is problematic in that an aggregate object's state can change via an alias to one of ...
Object Ownership for Dynamic Alias Protection
TOOLS '99: Proceedings of the 32nd International Conference on Technology of Object-Oriented LanguagesInterobject references in object-oriented programs allow arbitrary aliases between objects. By breaching objects' encapsulation boundaries, these aliases can make programs hard to understand and especially hard to debug. We propose using an explicit, ...
Comments