skip to main content
article
Free Access

Ownership types for flexible alias protection

Published:01 October 1998Publication History
Skip Abstract Section

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.

References

  1. 1 Martin Abadi and Luca Cardelli. A Theory of Objects. Springer-Verlag, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. 2 Alfred V. Aho, John E. Hopcroft, and Jeffrey D. Ullman. The design and analysis of computer algorithms. Addison-Wesley, 1974. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 3 Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman. Compilers: Principles, Techniques, and Tools. Addison-Wesley, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. 4 Paulo S6rgio Almeida. Balloon Types: Controlling sharing of state in data types. In ECOOP Proceedings, June 1997.Google ScholarGoogle Scholar
  5. 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 ScholarGoogle Scholar
  6. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  7. 7 Edwin Blake and Steve Cook. On including part hierarchies in object-oriented languages, with an implementation in Smalltalk. In ECOOP Proceedings, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  9. 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 ScholarGoogle Scholar
  10. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  11. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  12. 12 Franco Civello. Roles for composite objects in objectoriented analysis and design. In OOPSLA Proceedings, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  14. 14 Jin Song Dong and Roger Duke. Exclusive control within object oriented systems. In TOOLS Pacific 18, 1995.Google ScholarGoogle Scholar
  15. 15 Margaret Ellis and Bjarne Stroustrup. The Annotated C++ Reference Manual. Addison-Wesley, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. 16 Matthew Flatt, Shriram Krishnamurthi, and Matthias Felleisen. Classes and Mixins. In 25th A CM conference on Principles of Programming Languages, January 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. 17 A. Goldberg and D. Robson. SmaUtalk-80: The Language and its Implementation. Adison-Wesley, 1983. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. 18 James Gosling, Bill joy, and Guy Steele. The Java Language Specification. Addison-Wesley, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. 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 ScholarGoogle Scholar
  20. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  21. 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 ScholarGoogle ScholarCross RefCross Ref
  22. 22 Matthew Hennessy and James Riely. Resource Control in Systems of Mobile Agents. Technical Report 2/98, University of Sussex, February 1998.Google ScholarGoogle ScholarCross RefCross Ref
  23. 23 John Hogg. Islands: Aliasing protection in objectoriented languages. In OOPSLA Proceedings, November 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  25. 25 Stuart Kent and John Howse. Value types in Eiffel. In TOOLS 19, Paris, 1996.Google ScholarGoogle Scholar
  26. 26 Stuart Kent and ian Maung. Encapsulation and aggregation. In TOOLS Pacific 18, 1995.Google ScholarGoogle Scholar
  27. 27 William Landi. Undecidability of static analysis. A CM Letters on Programming Languages and Systems, 1(4), December 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. 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 ScholarGoogle Scholar
  29. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  30. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  31. 31 B. J. MacLennan. Values and objects in programming languages. A CM SIGPLAN Notices, 17(12), December 1982. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. 32 Bertrand Meyer. Eiffel: The Language. Prentice Hall, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  34. 34 Naftaly Minsky. Towards alias-free pointers. In ECOOP Proceedings, July 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. 35 J. Gregory Morrisett. Refining First-Class Stores. In A CM SIGPLAN Worshop on State in Programming Languages, 1993.Google ScholarGoogle Scholar
  36. 36 Hanne Riis Nielson and Flemming Nielson. Semantics with Applications: a formal introduction. Wiley, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. 37 James Noble and John Potter. Change detection for aggregate objects with aliasing. In Australian Software Engineering Conference, Sydney, Australia, 1997. IEEE Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. 38 James Noble, Jan Vitek, and John Potter. Flexible alias protection. In ECOOP Proceedings, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  40. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  41. 41 John C. Reynolds. Syntatic control of interference. In 5th A CM Symposium on Principles of Programming Languages, January 1978. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. 42 Jon G. Riecke and Chrisopher A. Stone. Privacy via Subsumption. In Fifth Workshop on Foundations of Object-Oriented Languages, 1998.Google ScholarGoogle Scholar
  43. 43 James Rumbaugh, Michael Blaha, William Premerlani, Frederick Eddy, and William Lorensen. Object-Oriented Modeling and Design. Prentice Hall, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  45. 45 Mads Tofte and Jean-Pierre Talpin. Region-Based Memory Management. Information and Computation, 132(2):109-176, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. 46 Mark Utting. Reasoning about aliasing. In The Fourth Australasian Refinement Workshop, 1995.Google ScholarGoogle Scholar

Index Terms

  1. Ownership types for flexible alias protection

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      • Published in

        cover image ACM SIGPLAN Notices
        ACM SIGPLAN Notices  Volume 33, Issue 10
        Oct. 1998
        412 pages
        ISSN:0362-1340
        EISSN:1558-1160
        DOI:10.1145/286942
        Issue’s Table of Contents
        • cover image ACM Conferences
          OOPSLA '98: Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
          October 1998
          428 pages
          ISBN:1581130058
          DOI:10.1145/286936

        Copyright © 1998 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 1 October 1998

        Check for updates

        Qualifiers

        • article

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader