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.
- }}J. Aldrich and C. Chambers. Ownership Domains: Separating Aliasing Policy from Mechanism. In European Conference on Object Oriented Programming (ECOOP), 2004.Google Scholar
Cross Ref
- }}J. Aldrich, C. Chambers, and D. Notkin. ArchJava: Connecting Software Architecture to Implementation. In International Conference on Software Engineering (ICSE), 2002. Google Scholar
Digital Library
- }}J. Aldrich, V. Kostadinov, and C. Chambers. Alias Annotations for Program Understanding. In Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), 2002. Google Scholar
Digital Library
- }}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 Scholar
Digital Library
- }}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 Scholar
Digital Library
- }}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 Scholar
- }}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 Scholar
Digital Library
- }}C. Boyapati, B. Liskov, and L. Shrira. Ownership Types for Object Encapsulation. In Principles of Programming Languages (POPL), 2003. Google Scholar
Digital Library
- }}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 Scholar
Digital Library
- }}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 Scholar
Digital Library
- }}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 Scholar
Digital Library
- }}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 Scholar
Digital Library
- }}N. Cameron. Existential Types for Variance - Java Wildcards and Ownership Types. PhD thesis, Imperial College London, 2009.Google Scholar
- }}N. Cameron and S. Drossopoulou. Existential Quantification for Variant Ownership. In European Symposium on Programming Languages and Systems (ESOP), 2009. Google Scholar
Digital Library
- }}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 Scholar
- }}N. R. Cameron, S. Drossopoulou, J. Noble, and M. J. Smith. Multiple Ownership. In Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), 2007. Google Scholar
Digital Library
- }}D. Clarke. Nested Classes, Nested Objects and Ownership. Invited talk at FOOL/WOOD, 2006.Google Scholar
- }}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 Scholar
Digital Library
- }}D. Clarke, S. Drossopoulou, J. Noble, and T. Wrigstad. Tribe: A Simple Virtual Class Calculus. In Aspect-Oriented Software Development (AOSD), 2007. Google Scholar
Digital Library
- }}D. Clarke and T. Wrigstad. External Uniqueness is Unique Enough. In European Conference on Object Oriented Programming (ECOOP), 2003.Google Scholar
Cross Ref
- }}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 Scholar
Digital Library
- }}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 Scholar
Digital Library
- }}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 Scholar
Digital Library
- }}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 Scholar
- }}W. Dietl and P. Müller. Universes: Lightweight Ownership for JML. Journal of Object Technology, 4(8), 2005.Google Scholar
- }}W. Dietl and P. Müller. Ownership Type Systems and Dependent Classes. In Foundations of Object-Oriented Languages (FOOL), 2008.Google Scholar
- }}W. M. Dietl. Universe Types: Topology, Encapsulation, Genericity, and Tools. PhD thesis, ETH Zurich, Switzerland, 2009.Google Scholar
- }}E. Ernst. Propagating Class and Method Combination. In European Conference on Object Oriented Programming (ECOOP), 1999. Google Scholar
Digital Library
- }}E. Ernst. Family Polymorphism. In European Conference on Object Oriented Programming (ECOOP), 2001. Google Scholar
Digital Library
- }}E. Ernst, K. Ostermann, and W. R. Cook. A Virtual Class Calculus. In Principles of Programming Languages (POPL), 2006. Google Scholar
Digital Library
- }}C. Grothoff, J. Palsberg, and J. Vitek. Encapsulating Objects with Confined Types. ACM Transactions on Programming Languages and Systems (TOPLAS), 29(6), 2007. Google Scholar
Digital Library
- }}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 Scholar
Digital Library
- }}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 Scholar
- }}Y. D. Liu and S. Smith. Pedigree Types. In International Workshop on Aliasing, Confinement and Ownership in object-oriented programming (IWACO), 2008.Google Scholar
- }}Y. Lu and J. Potter. On Ownership and Accessibility. In European Conference on Object Oriented Programming (ECOOP), 2006. Google Scholar
Digital Library
- }}M. Odersky et al. An Overview of the Scala Programming Language. Technical Report IC/2004/64, EPFL Lausanne, Switzerland, 2004.Google Scholar
- }}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 Scholar
Digital Library
- }}M. Mezini and K. Ostermann. Conquering Aspects with Caesar. In Aspect-Oriented Software Development (AOSD), 2003. Google Scholar
Digital Library
- }}P. Müller and A. Poetzsch-Heffter. Universes: A Type System for Alias and Dependency Control. Technical Report 279, Fernuniversitat Hagen, 2001.Google Scholar
- }}J. Noble, J. Vitek, and J. Potter. Flexible Alias Protection. In European Conference on Object Oriented Programming (ECOOP), 1998. Google Scholar
Digital Library
- }}N. Nystrom, S. Chong, and A. C. Myers. Scalable Extensibility via Nested Inheritance. In Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), 2004. Google Scholar
Digital Library
- }}J. Östlund and T. Wrigstad. Welterweight Java. In International Conference on Objects, Components, Models and Patterns (TOOLS Europe), 2010. Google Scholar
Digital Library
- }}M. Parkinson. Class Invariants: The End of the Road? In International Workshop on Aliasing, Confinement and Ownership in object-oriented programming (IWACO), 2007.Google Scholar
- }}C. Saito, A. Igarashi, and M. Viroli. Lightweight Family Polymorphism. J. Funct. Program., 18(3), 2008. Google Scholar
Digital Library
- }}M. Smith. A Model of Effects with an Application to Ownership Types. PhD thesis, Imperial College, 2007.Google Scholar
- }}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 Scholar
Digital Library
- }}M. Torgersen. The Expression Problem Revisited. In European Conference on Object Oriented Programming (ECOOP), 2004.Google Scholar
- }}P. Wadler. The Expression Problem. Message to Java-Genericity mailing list, November 1998.Google Scholar
- }}T. Wrigstad and D. Clarke. Existential Owners for Ownership Types. Journal of Object Technology, 6(4), 2007.Google Scholar
- }}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 Scholar
Digital Library
- }}T. Zhao, J. Baker, J. Hunt, J. Noble, and J. Vitek. Implicit Ownership Types for Memory Management. Sci. Comput. Program., 71(3), 2008. Google Scholar
Digital Library
Index Terms
Tribal ownership
Recommendations
Tribal ownership
OOPSLA '10: Proceedings of the ACM international conference on Object oriented programming systems languages and applicationsTribal 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 ...
Multiple ownership
OOPSLA '07: Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems, languages and applicationsExisting ownership type systems require objects to have precisely one primary owner, organizing the heap into an ownership tree. Unfortunately, a tree structure is too restrictive for many programs, and prevents many common design patterns where ...
Multiple ownership
Proceedings of the 2007 OOPSLA conferenceExisting ownership type systems require objects to have precisely one primary owner, organizing the heap into an ownership tree. Unfortunately, a tree structure is too restrictive for many programs, and prevents many common design patterns where ...







Comments