Skip to main content

External Uniqueness Is Unique Enough

  • Conference paper
ECOOP 2003 – Object-Oriented Programming (ECOOP 2003)

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

Included in the following conference series:

Abstract

External uniqueness is a surprising new way to add unique references to an OOPL. The idea is that an externally unique reference is the only reference into an aggregate from outside the aggregate. Internal references which do not escape the boundary of the aggregate are innocuous and therefore permitted. Based on ownership types, our proposal not only overcomes an abstraction problem from which existing uniqueness proposals suffer, it also enables many examples which are inherently not unique, such as a unique reference to a set of links in a doubly-linked list, without losing the benefits of uniqueness.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Aldrich, J., Kostadinov, V., Chambers, C.: Alias annotations for program understanding. In: OOPSLA Proceedings (November 2002)

    Google Scholar 

  2. Almeida, P.S.: Balloon Types: Controlling sharing of state in data types. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 32–59. Springer, Heidelberg (1997)

    Chapter  Google Scholar 

  3. Bacon, D.F., Strom, R.E., Tarafdar, A.: Guava: a dialect of Java without data races. In: OOPSLA Proceedings, pp. 382–400 (2000)

    Google Scholar 

  4. Baker, H.G.: ‘Use-once’ variables and linear objects – storage management, reflection and multi-threading. ACM SIGPLAN Notices 30(1) (January 1995)

    Google Scholar 

  5. Banerjee, A., Naumann, D.A.: Representation independence, confinement, and access control. In: Proceedings of the 29th ACM Symposium on Principles of Programming Languages (POPL 2002), Portland, Oregon (January 2002)

    Google Scholar 

  6. Bollella, G., Gosling, J., Brosgol, B., Dibble, P., Furr, S., Turnbull, M.: The Real-Time Specification for Java. Addison-Wesley, Reading (2000)

    Google Scholar 

  7. Boyapati, C., Lee, R., Rinard, M.: Ownership types for safe programming: Preventing data races and deadlocks. In: OOPSLA Proceedings (November 2002)

    Google Scholar 

  8. Boyapati, C., Liskov, B., Shrira, L.: Ownership types and safe lazy upgrades in object-oriented databases. Technical Report MIT-LCSTR- 858, Laboratory for Computer Science, MIT (July 2002)

    Google Scholar 

  9. Boyapati, C., Rinard, M.: A parameterized type system for race-free Java programs. In: OOPSLA Proceedings (2001)

    Google Scholar 

  10. Boyapati, C., Salcianu, A., Beebee, W., Rinard, M.: Ownership types for safe region-based memory management in real-time java. In: ACM SIGPLAN 2003 Conference on Programming Language Design and Implementation (PLDI) (June 2003)

    Google Scholar 

  11. Boyland, J.: Alias burying: Unique variables without destructive reads. Software – Practice and Experience 31(6), 533–553 (2001)

    Article  MATH  Google Scholar 

  12. Boyland, J.: The interdependence of effects and uniqueness. In: 3rd Workshop on Formal Techniques for Java Programs (June 2001)

    Google Scholar 

  13. Boyland, J., Noble, J., Retert, W.: Capabilities for Sharing: A Generalization of Uniqueness and Read-Only. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, p. 2. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  14. Christiansen, M.V., Velschrow, P.: Region-based memory management in Java. Master’s thesis, Department of Computer Science (DIKU), University of Copenhagen (May 1998)

    Google Scholar 

  15. Clarke, D.: Object Ownership and Containment. PhD thesis, School of Computer Science and Engineering, University of New SouthWales, Sydney, Australia (2001)

    Google Scholar 

  16. Clarke, D., Drossopolou, S.: Ownership, encapsulation and the disjointness of type and effect. In: OOPSLA Proceedings (November 2002)

    Google Scholar 

  17. Clarke, D., Potter, J., Noble, J.: Ownership types for flexible alias protection. In: OOPSLA Proceedings (1998)

    Google Scholar 

  18. Clarke, D., Wrigstad, T.: External uniqueness. In: 10th Workshop on Foundations of Object-Oriented Languages (FOOL), New Orleans, LA (January 2003)

    Google Scholar 

  19. DeLine, R., Fähndrich, M.: Enforcing high-level protocols in lowlevel software. In: Proceedings of the ACM Conference on Programming Language Design and Implementation, June 2001, pp. 59–69 (2001)

    Google Scholar 

  20. Detlefs, D.L., Rustan, K., Leino, M., Nelson, G.: Wrestling with rep exposure. Technical Report SRC-RR-98-156, Compaq Systems Research Center (July 1998)

    Google Scholar 

  21. Fähndrich, M., De Line, R.: Adoption and focus: Practical linear types for imperative programming. In: Proceedings of the ACM Conference on Programming Language Design and Implementation (June 2002)

    Google Scholar 

  22. Fähndrich, M., Rustan, K., Leino, M.: Non-null types in an object-oriented language. In: Poll, E. (ed.) Formal Techniques for Java-like Programs, Mälaga, Spain (June 2002); Appears in Technical report NIII-R0204, Computing Science Department, University of Nijmegen (2002)

    Google Scholar 

  23. Gamma, E., Helm, R., Johnson, R.E., Vlissides, J.: Design Patterns. Addison-Wesley, Reading (1994)

    Google Scholar 

  24. Gay, D., Aiken, A.: Language support for regions. In: ACM SIGPLAN 2001 Conference on Programming Language Design and Implementation (PLDI), Snowbird, Utah (June 2001)

    Google Scholar 

  25. Girard, J.-Y.: Linear logic. Theoretical Computer Science 50, 1–102 (1987)

    Article  MATH  MathSciNet  Google Scholar 

  26. Greenhouse, A., Boyland, J.: An object-oriented effects system. In: Guerraoui, R. (ed.) ECOOP 1999. LNCS, vol. 1628, p. 205. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  27. Grossman, D., Morrisett, G., Jim, T., Hicks, M., Wang, Y., Cheney, J.: Region-based memory management in Cyclone. In: Proceedings of the ACM Conference on Programming Language Design and Implementation (June 2002)

    Google Scholar 

  28. Grothoff, C., Palsberg, J., Vitek, J.: Encapsulating objects with confined types. In: OOPSLA Proceedings (2001)

    Google Scholar 

  29. Hogg, J.: Islands: Aliasing protection in object-oriented languages. In: OOPSLA Proceedings (November 1991)

    Google Scholar 

  30. Kim, W., Bertino, E., Garza, J.F.: Composite objects revisited. In: Proceedings of the 1989 ACM SIGMOD International Conference on Management of Data, Portland, Oregon, pp. 337–347 (1989)

    Google Scholar 

  31. Kobayashi, N.: Quasi-linear types. In: 26th ACM Symposium on Principles of Programming Languages (January 1999)

    Google Scholar 

  32. Lea, D.: Concurrent-Programming in Java: Design Principles and Patterns. Java Series. Addison-Wesley, Reading (1998)

    Google Scholar 

  33. Rustan, K., Leino, M., Poetzsch-Heffter, A., Zhou, Y.: Using data groups to specify and check side effects. In: Proceedings of the ACM Conference on Programming Language Design and Implementation (June 2002)

    Google Scholar 

  34. Rustan, K., Leino, M.: Raymie Stata. Virginity: A contribution to the specification of object-oriented software. Information Processing Letters 70(2), 99–105 (1999)

    Article  MATH  Google Scholar 

  35. Minsky, N.: Towards alias-free pointers. In: Cointe, P. (ed.) ECOOP 1996. LNCS, vol. 1098, pp. 189–209. Springer, Heidelberg (1996)

    Google Scholar 

  36. Müller, P., Poetzsch-Heffter, A.: Universes: A type system for controlling representation exposure. In: Poetzsch-Heffter, A., Meyer, J. (eds.) Programming Languages and Fundamentals of Programming, Fernuniversität Hagen (1999)

    Google Scholar 

  37. Noble, J., Vitek, J., Potter, J.: Flexible alias protection. In: Jul, E. (ed.) ECOOP 1998. LNCS, vol. 1445, p. 158. Springer, Heidelberg (1998)

    Chapter  Google Scholar 

  38. Potter, J., Noble, J., Clarke, D.: The ins and outs of objects. In: Australian Software Engineering Conference, Adelaide, Australia. IEEE Press, Los Alamitos (1998)

    Google Scholar 

  39. Talpin, J.-P., Jouvelot, P.: Polymorphic type, region, and effect inference. Journal of Functional Programming 2(3), 245–271 (1992)

    Article  MATH  MathSciNet  Google Scholar 

  40. Tofte, M., Talpin, J.-P.: Region-Based Memory Management. Information and Computation 132(2), 109–176 (1997)

    Article  MATH  MathSciNet  Google Scholar 

  41. Wadler, P.: Linear types can change the world! In: Broy, M., Jones, C.B. (eds.) IFIP TC 2 Working Conference on Programming Concepts and Methods, Sea of Gallilee, Israel, pp. 561–581. North-Holland, Amsterdam (1990)

    Google Scholar 

  42. Yates, B.N.: A type-and-effect system for encapsulating memory in Java. Master’s thesis, Department of Computer and Information Science and the Graduate School of the University of Oregon (August 1999)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2003 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Clarke, D., Wrigstad, T. (2003). External Uniqueness Is Unique Enough. In: Cardelli, L. (eds) ECOOP 2003 – Object-Oriented Programming. ECOOP 2003. Lecture Notes in Computer Science, vol 2743. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-45070-2_9

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-45070-2_9

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-40531-3

  • Online ISBN: 978-3-540-45070-2

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics