skip to main content
research-article

Tribal ownership

Published:17 October 2010Publication History
Skip Abstract Section

Abstract

Tribal Ownership unifies class nesting and object ownership. Tribal Ownership is based on Tribe, a language with nested classes and object families. In Tribal Ownership, a program's runtime object ownership structure is characterised by the lexical nesting structure of its classes.

We build on a variant of Tribe to present a descriptive ownership system, using object nesting to describe heap partitions, but without imposing any restrictions on programming disciplines. We then demonstrate how a range of different prescriptive ownership policies can be supported on top of the descriptive Tribal Ownership mechanism; including a novel owners-as-local-dominators policy. We formalise our type system and prove soundness and several ownership invariants. The resulting system requires strikingly few annotations, and uses well-understood encapsulation techniques to create ownership systems that should be intuitive for programmers.

References

  1. }}J. Aldrich and C. Chambers. Ownership Domains: Separating Aliasing Policy from Mechanism. In European Conference on Object Oriented Programming (ECOOP), 2004.Google ScholarGoogle ScholarCross RefCross Ref
  2. }}J. Aldrich, C. Chambers, and D. Notkin. ArchJava: Connecting Software Architecture to Implementation. In International Conference on Software Engineering (ICSE), 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. }}J. Aldrich, V. Kostadinov, and C. Chambers. Alias Annotations for Program Understanding. In Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. }}A. Bach Nielsen and E. Ernst. Virtual Class Support at the Virtual Vachine Level. In Workshop on Virtual Machines and Intermediate Languages (VMIL), 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. }}R. L. Bocchino, Jr., V. S. Adve, D. Dig, S. V. Adve, S. Heumann, R. Komuravelli, J. Overbey, P. Simmons, H. Sung, and M. Vakilian. A Type and Effect System for Deterministic Parallel Java. In Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. }}C. Boyapati, R. Lee, and M. Rinard. Safe Runtime Downcasts With Ownership Types. In International Workshop on Aliasing, Confinement and Ownership in object-oriented programming (IWACO), 2001.Google ScholarGoogle Scholar
  7. }}C. Boyapati, R. Lee, and M. Rinard. Ownership Types for Safe Programming: Preventing Data Races and Deadlocks. In Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. }}C. Boyapati, B. Liskov, and L. Shrira. Ownership Types for Object Encapsulation. In Principles of Programming Languages (POPL), 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. }}C. Boyapati, B. Liskov, L. Shrira, C.-H. Moh, and S. Richman. Lazy Modular Upgrades in Persistent Object Stores. In Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. }}C. Boyapati, A. Salcianu, W. Beebee, Jr., and M. Rinard. Ownership Types for Safe Region-based Memory Management in Real-time Java. In Programming Language Design and Implementation (PLDI), 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. }}J. Boyland, J. Noble, and W. Retert. Capabilities for Sharing: A Generalization of Uniqueness and Read-Only. In European Conference on Object Oriented Programming (ECOOP), 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. }}G. Bracha, P. Ahé, V. Bykov, Y. Kashai, W. Maddox, and E. Miranda. Modules as Objects in Newspeak. In European Conference on Object Oriented Programming (ECOOP), 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. }}N. Cameron. Existential Types for Variance - Java Wildcards and Ownership Types. PhD thesis, Imperial College London, 2009.Google ScholarGoogle Scholar
  14. }}N. Cameron and S. Drossopoulou. Existential Quantification for Variant Ownership. In European Symposium on Programming Languages and Systems (ESOP), 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. }}N. Cameron, T. Wrigstad, and J. Noble. Tribal Ownership (accompanying technical report). Technical Report 10-14, School of Engineering and Computer Science, Victoria University of Wellington. https://ecs.victoria.ac.nz/twiki/pub/Main/TechnicalReportSeries/ECSTR10%-14.pdf.Google ScholarGoogle Scholar
  16. }}N. R. Cameron, S. Drossopoulou, J. Noble, and M. J. Smith. Multiple Ownership. In Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. }}D. Clarke. Nested Classes, Nested Objects and Ownership. Invited talk at FOOL/WOOD, 2006.Google ScholarGoogle Scholar
  18. }}D. Clarke and S. Drossopoulou. Ownership, Encapsulation, and the Disjointness of Type and Effect. In Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. }}D. Clarke, S. Drossopoulou, J. Noble, and T. Wrigstad. Tribe: A Simple Virtual Class Calculus. In Aspect-Oriented Software Development (AOSD), 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. }}D. Clarke and T. Wrigstad. External Uniqueness is Unique Enough. In European Conference on Object Oriented Programming (ECOOP), 2003.Google ScholarGoogle ScholarCross RefCross Ref
  21. }}D. Clarke, T. Wrigstad, J. Östlund, and E. B. Johnsen. Minimal Ownership for Active Objects. In Asian Symposium on Programming Languages and Systems (APLAS), 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. }}D. G. Clarke, J. M. Potter, and J. Noble. Ownership Types for Flexible Alias Protection. In Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. }}D. Cunningham, W. Dietl, S. Drossopoulou, A. Francalanza, P. Müller, and A. J. Summers. Universe Types for Topology and Encapsulation. In Formal Methods for Components and Objects (FMCO), 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. }}D. Cunningham, S. Drossopoulou, and S. Eisenbach. Universe Types for Race Safety. In Verification and Analysis of Multi-threaded Java-like Programs (VAMP), 2007.Google ScholarGoogle Scholar
  25. }}W. Dietl and P. Müller. Universes: Lightweight Ownership for JML. Journal of Object Technology, 4(8), 2005.Google ScholarGoogle Scholar
  26. }}W. Dietl and P. Müller. Ownership Type Systems and Dependent Classes. In Foundations of Object-Oriented Languages (FOOL), 2008.Google ScholarGoogle Scholar
  27. }}W. M. Dietl. Universe Types: Topology, Encapsulation, Genericity, and Tools. PhD thesis, ETH Zurich, Switzerland, 2009.Google ScholarGoogle Scholar
  28. }}E. Ernst. Propagating Class and Method Combination. In European Conference on Object Oriented Programming (ECOOP), 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. }}E. Ernst. Family Polymorphism. In European Conference on Object Oriented Programming (ECOOP), 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. }}E. Ernst, K. Ostermann, and W. R. Cook. A Virtual Class Calculus. In Principles of Programming Languages (POPL), 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. }}C. Grothoff, J. Palsberg, and J. Vitek. Encapsulating Objects with Confined Types. ACM Transactions on Programming Languages and Systems (TOPLAS), 29(6), 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. }}A. Igarashi, B. C. Pierce, and P. Wadler. Featherweight Java: a Minimal Core Calculus for Java and GJ. ACM Transactions on Programming Languages and Systems (TOPLAS), 23(3), 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. }}P. Jolly, S. Drossopoulou, C. Anderson, and K. Ostermann. Simple Dependent Types: Concord. In ECOOP Workshop on Formal Techniques for Java-like Languages (FTfJP), 2004.Google ScholarGoogle Scholar
  34. }}Y. D. Liu and S. Smith. Pedigree Types. In International Workshop on Aliasing, Confinement and Ownership in object-oriented programming (IWACO), 2008.Google ScholarGoogle Scholar
  35. }}Y. Lu and J. Potter. On Ownership and Accessibility. In European Conference on Object Oriented Programming (ECOOP), 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. }}M. Odersky et al. An Overview of the Scala Programming Language. Technical Report IC/2004/64, EPFL Lausanne, Switzerland, 2004.Google ScholarGoogle Scholar
  37. }}O. L. Madsen and B. Moller-Pedersen. Virtual Classes: A Powerful Mechanism in Object-oriented Programming. In Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. }}M. Mezini and K. Ostermann. Conquering Aspects with Caesar. In Aspect-Oriented Software Development (AOSD), 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. }}P. Müller and A. Poetzsch-Heffter. Universes: A Type System for Alias and Dependency Control. Technical Report 279, Fernuniversitat Hagen, 2001.Google ScholarGoogle Scholar
  40. }}J. Noble, J. Vitek, and J. Potter. Flexible Alias Protection. In European Conference on Object Oriented Programming (ECOOP), 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. }}N. Nystrom, S. Chong, and A. C. Myers. Scalable Extensibility via Nested Inheritance. In Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. }}J. Östlund and T. Wrigstad. Welterweight Java. In International Conference on Objects, Components, Models and Patterns (TOOLS Europe), 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. }}M. Parkinson. Class Invariants: The End of the Road? In International Workshop on Aliasing, Confinement and Ownership in object-oriented programming (IWACO), 2007.Google ScholarGoogle Scholar
  44. }}C. Saito, A. Igarashi, and M. Viroli. Lightweight Family Polymorphism. J. Funct. Program., 18(3), 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. }}M. Smith. A Model of Effects with an Application to Ownership Types. PhD thesis, Imperial College, 2007.Google ScholarGoogle Scholar
  46. }}J. H. Spring, J. Privat, R. Guerraoui, and J. Vitek. StreamFlex: High-throughput Stream Programming in Java. In Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. }}M. Torgersen. The Expression Problem Revisited. In European Conference on Object Oriented Programming (ECOOP), 2004.Google ScholarGoogle Scholar
  48. }}P. Wadler. The Expression Problem. Message to Java-Genericity mailing list, November 1998.Google ScholarGoogle Scholar
  49. }}T. Wrigstad and D. Clarke. Existential Owners for Ownership Types. Journal of Object Technology, 6(4), 2007.Google ScholarGoogle Scholar
  50. }}T. Wrigstad, F. Pizlo, F. Meawad, L. Zhao, and J. Vitek. Loci: Simple Thread-Locality for Java. In European Conference on Object Oriented Programming (ECOOP), 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  51. }}T. Zhao, J. Baker, J. Hunt, J. Noble, and J. Vitek. Implicit Ownership Types for Memory Management. Sci. Comput. Program., 71(3), 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Tribal ownership

    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

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!