Abstract
Ownership is a powerful concept to structure the object store and to control aliasing and modifications of objects. This article presents an ownership type system for a Java-like programming language with generic types.
Like our earlier Universe type system, Generic Universe Types structure the heap hierarchically. In contrast to earlier work, we separate the enforcement of an ownership topology from an encapsulation system. The topological system uses an existential modifier to express that no ownership information is available statically. On top of the topological system, we build an encapsulation system that enforces the owner-as-modifier discipline. This discipline does not restrict aliasing, but requires modifications of an object to be initiated by its owner. This allows owner objects to control state changes of owned objects—for instance, to maintain invariants. Separating the topological system from the encapsulation system allows for a cleaner formalization, separation of concerns, and simpler reuse of the individual systems in different contexts.
Supplemental Material
Available for Download
Online appendix to separating ownership topology and encapsulation with generic universe types
- Abi-Antoun, M. and Aldrich, J. 2007a. Compile-time views of execution structure based on ownership. In Proceedings of the International Workshop on Aliasing, Confinement and Ownership in Object-Oriented Programming (IWACO).Google Scholar
- Abi-Antoun, M. and Aldrich, J. 2007b. Ownership domains in the real world. In Proceedings of the International Workshop on Aliasing, Confinement and Ownership in Object-Oriented Programming (IWACO).Google Scholar
- Abi-Antoun, M. and Aldrich, J. 2009. Static extraction of sound hierarchical runtime object graphs. In Proceedings of the International Workshop on Types in Language Design and Implementation (TLDI). Google Scholar
Digital Library
- Ádám Darvas and Leino, K. R. M. 2007. Practical reasoning about invocations and implementations of pure methods. In Fundamental Approaches to Software Engineering (FASE), M.B. Dwyer and A. Lopes Eds., Lecture Notes in Computer Science, vol. 4422. Springer, Berlin, 336--351. Google Scholar
Digital Library
- Aldrich, J. 2003. Using types to enforce architectural structure. Ph.D. dissertation, University of Washington. Google Scholar
Digital Library
- Aldrich, J. and Chambers, C. 2004. Ownership domains: Separating aliasing policy from mechanism. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP). Lecture Notes in Computer Science, vol. 3086, Springer, Berlin, 1--25.Google Scholar
- Aldrich, J., Kostadinov, V., and Chambers, C. 2002. Alias annotations for program understanding. In Proceedings of the Object-Oriented Programming Systems, Languages, and Applications (OOPSLA). ACM, New York, 311--330. Google Scholar
Digital Library
- Almeida, P. S. 1997. Balloon types: Controlling sharing of state in data types. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP). Lecture Notes in Computer Science, vol. 1241, Springer, Berlin, 32--59.Google Scholar
- Almeida, P. S. 1998. Control of object sharing in programming languages. Ph.D. dissertation, Imperial College London.Google Scholar
- Andrea, C., Coady, Y., Gibbs, C., Noble, J., Vitek, J., and Zhao, T. 2006. Scoped types and aspects for real-time systems. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP). Lecture Notes in Computer Science, vol. 4067, Springer, Berlin, 124--147. Google Scholar
Digital Library
- Banerjee, A. and Naumann, D. A. 2002. Representation independence, confinement, and access control. In Proceedings of the Symposium on Principles of Programming Languages (POPL). ACM, New York, 166--177. Google Scholar
Digital Library
- Banerjee, A. and Naumann, D. A. 2004. Ownership confinement ensures representation independence for object-oriented programs. Tech. rep. 2004-14, Stevens Institute of Technology.Google Scholar
- Banerjee, A., Naumann, D. A., and Rosenberg, S. 2008. Regional logic for local reasoning about global invariants. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP). Lecture Notes in Computer Science, vol. 5142. Springer, Berlin, 387--411. Google Scholar
Digital Library
- Barnett, M., DeLine, R., Fähndrich, M., Leino, K. R. M., and Schulte, W. 2004. Verification of object-oriented programs with invariants. J. Object Technol. 3, 6, 27--56.Google Scholar
Cross Ref
- Barnett, M., Naumann, D. A., Schulte, W., and Sun, Q. 2004. 99.44% pure: Useful abstractions in specification. In Proceedings of the Formal Techniques for Java-like Programs Workshop (FTfJP). 51--60.Google Scholar
- Bierman, G. M., Parkinson, M. J., and Pitts, A. M. 2003. An imperative core calculus for Java and Java with effects. Tech. rep. 563, Computer Laboratory, University of Cambridge.Google Scholar
- Birka, A. and Ernst, M. D. 2004. A practical type system and language for reference immutability. In Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA). ACM, New York Google Scholar
Digital Library
- Bokowski, B. and Vitek, J. 1999. Confined types. In Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA). ACM New York, 82--96. Google Scholar
Digital Library
- Boyapati, C. 2004. SafeJava: A unified type system for safe programming. Ph.D. dissertation, MIT, Cambridge, MA. Google Scholar
Digital Library
- Boyapati, C., Lee, R., and Rinard, M. 2002. Ownership types for safe programming: Preventing data races and deadlocks. In Proceedings of the Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA). ACM New York, 211--230. Google Scholar
Digital Library
- Boyapati, C., Lee, R., and Rinard, M. 2003. Safe runtime downcasts with ownership types. In Proceedings of the International Workshop on Aliasing, Confinement and Ownership in Object-oriented Programming (IWACO).Google Scholar
- Boyapati, C., Liskov, B., and Shrira, L. 2003. Ownership types for object encapsulation. In Proceedings of the Symposium on Principles of Programming Languages (POPL). ACM, New York, 213--223. Google Scholar
Digital Library
- Boyapati, C., Salcianu, A., Jr., and Rinard, M. 2003. Ownership types for safe region-based memory management in real-time Java. In Proceedings of the Conference on Programming Language Design and Implementation (PLDI). ACM, New York, 324--337. Google Scholar
Digital Library
- Boyland, J. 2001. Alias burying: Unique variables without destructive reads. Softw. Pract. Exper. 31, 6, 533--553. Google Scholar
Digital Library
- Boyland, J. 2005. Why we should not add read-only to Java (yet). In Proceedings of Formal Techniques for Java-like Programs Workshop (FTfJP).Google Scholar
- Boyland, J., Noble, J., and Retert, W. 2001. Capabilities for aliasing: A generalization of uniqueness and read-only. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP). Lecture Notes in Computer Science, vol. 2072. Springer, Berlin, 2--27. Google Scholar
Digital Library
- Burdy, L., Cheon, Y., Cok, D., Ernst, M., Kiniry, J., Leavens, G. T., Leino, K. R. M., and Poll, E. 2003. An overview of JML tools and applications. In Proceedings of the Formal Methods for Industrial Critical Systems (FMICS). Elsevier, Amsterdam, 73--89.Google Scholar
- Burdy, L., Requet, A., and Lanet, J.-L. 2003. Java applet correctness: A developer-oriented approach. In Proceedings of the International Symposium on Formal Methods Europe (FME). Lecture Notes in Computer Science, vol. 2805, Springer, Berlin, 422--439.Google Scholar
- Cameron, N. 2009. Existential types for variance | Java wildcards and ownership types. Ph.D. dissertation, Imperial College London.Google Scholar
- Cameron, N. and Dietl, W. 2009. Comparing universes and existential ownership types. In Proceedings of the International Workshop on Aliasing, Confinement and Ownership in Object-Oriented Programming (IWACO). Google Scholar
Digital Library
- Cameron, N. and Drossopoulou, S. 2009. Existential quantification for variant ownership. In Proceedings of the European Symposium on Programming Languages and Systems (ESOP). Google Scholar
Digital Library
- Cameron, N., Drossopoulou, S., and Ernst, E. 2008. A model for Java with wildcards. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP). Lecture Notes in Computer Science, vol. 5142, Springer, Berlin, 2--26. Google Scholar
Digital Library
- Cameron, N., Drossopoulou, S., Noble, J., and Smith, M. 2007. Multiple ownership. In Proceedings of the Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA). ACM, New York, 441--460. Google Scholar
Digital Library
- Cameron, N. and Noble, J. 2009. OGJ gone wild. In Proceedings of the International Workshop on Aliasing, Confinement and Ownership in Object-Oriented Programming (IWACO). Google Scholar
Digital Library
- Cartwright, R. and Fagan, M. 1991. Soft typing. In Proceedings of the Conference on Programming Language Design and Implementation (PLDI). ACM, New York, 278--292. Google Scholar
Digital Library
- Cartwright, R. and Felleisen, M. 1996. Program verification through soft typing. ACM Comput. Surv. 28, 2, 349--351. Google Scholar
Digital Library
- Charles, P., Grothoff, C., Saraswat, V., Donawa, C., Kielstra, A., Ebcioglu, K., von Praun, C., and Sarkar, V. 2005. X10: An object-oriented approach to non-uniform cluster computing. In Proceedings of the Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA). ACM, New York, 519--538. Google Scholar
Digital Library
- Cheon, Y. 2003. A runtime assertion checker for the Java modeling language. Ph.D. dissertation, Iowa State University.Google Scholar
- Cheon, Y. and Leavens, G. T. 2002. A runtime assertion checker for the Java Modeling Language (JML). In Proceedings of the International Conference on Software Engineering Research and Practice (SERP). CSREA Press, 322--328.Google Scholar
- Clarke, D. G. 2001. Object ownership and containment. Ph.D. dissertation, University of New South Wales. Google Scholar
Digital Library
- Clarke, D. G. and Drossopoulou, S. 2002. Ownership, encapsulation and the disjointness of type and effect. In Proceedings of the Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA). ACM, New York, 292--310. Google Scholar
Digital Library
- Clarke, D. G., Drossopoulou, S., Noble, J., and Wrigstad, T. 2007. Tribe: A simple virtual class calculus. In Proceedings of the Conference on Aspect-Oriented Software Development (AOSD). Google Scholar
Digital Library
- Clarke, D. G., Potter, J. M., and Noble, J. 1998. Ownership types for flexible alias protection. In Proceedings of the Object-Oriented Programming Systems, Languages, and Applications (OOPSLA). ACM, New York. Google Scholar
Digital Library
- Clarke, D. G., Richmond, M., and Noble, J. 2003. Saving the world from bad beans: deployment time confinement checking. In Proceedings of the Object-Oriented Programing, Systems, Languages, and Applications (OOPSLA). ACM New York, 374--387. Google Scholar
Digital Library
- Clarke, D. G. and Wrigstad, T. 2003. External uniqueness is unique enough. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP). Lecture Notes in Computer Science, vol. 2743. Springer, Berlin, 176--200.Google Scholar
- Cok, D. R. and Kiniry, J. 2004. ESC/Java2: Uniting ESC/Java and JML. In Proceedings of the Conference on Construction and Analysis of Safe, Secure and Interoperable Smart Devices (CASSIS). Lecture Notes in Computer Science, vol. 3362, Springer, Berlin, 108--128. Google Scholar
Digital Library
- Cok, D. R. and Leavens, G. T. 2008. Extensions of the theory of observational purity and a practical design for JML. In Proceedings of the Conference on Specification and Verification of Component-Based Systems (SAVCBS). 43--50.Google Scholar
- Cunningham, D., Dietl, W., Drossopoulou, S., Francalanza, A., Müller, P., and Summers, A. J. 2008. Universe types for topology and encapsulation. In Proceedings of the Conference on Formal Methods for Components and Objects (FMCO). Lecture Notes in Computer Science, vol. 5382, Springer, Berlin, 72--112. Google Scholar
Digital Library
- Cunningham, D., Drossopoulou, S., and Eisenbach, S. 2007. Universe types for race safety. In Proceedings of the Conference on Verification and Analysis of Multi-threaded Java-like Programs (VAMP). 20--51.Google Scholar
- Detlefs, D. L., Leino, K. R. M., and Nelson, G. 1998. Wrestling with rep exposure. SRC Res. rep. 156, Digital Systems Research Center.Google Scholar
- Dhara, K. K. and Leavens, G. T. 2001. Preventing cross-type aliasing for more practical reasoning. Tech. rep. 01-02a, Department of Computer Science, Iowa State University.Google Scholar
- Dietl, W. 2009. Universe Types: Topology, encapsulation, genericity, and tools. Ph.D. dissertation, ETH 18522, Department of Computer Science, ETH Zurich.Google Scholar
- Dietl, W., Drossopoulou, S., and Müller, P. 2006. Formalization of generic Universe Types. Tech. rep. 532, Department of Computer Science, ETH Zurich.Google Scholar
- Dietl, W., Drossopoulou, S., and Müller, P. 2007. Generic Universe Types. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP). Lecture Notes in Computer Science, vol. 4609, Springer, Berlin, 28--53. Google Scholar
Digital Library
- Dietl, W., Ernst, M. D., and Müller, P. 2009. Tunable Universe Type inference. Tech. rep. 659, Department of Computer Science, ETH Zurich. Dec.Google Scholar
- Dietl, W. and Müller, P. 2004. Exceptions in ownership type systems. In Proceedings of the Formal Techniques for Java-like Programs Workshop (FTfJP). 49--54.Google Scholar
- Dietl, W. and Müller, P. 2005. Universes: Lightweight ownership for JML. J. Object Technol. 4, 8, 5--32.Google Scholar
Cross Ref
- Dietl, W. and Müller, P. 2008. Ownership type systems and dependent classes. In Proceedings of the Conference on Foundations of Object-Oriented Languages (FOOL).Google Scholar
- Drossopoulou, S., Francalanza, A., Müller, P., and Summers, A. J. 2008. A unified framework for verification techniques for object invariants. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP). Lecture Notes in Computer Science, vol. 5142, Springer, Berlin, 412--437. Google Scholar
Digital Library
- Emir, B., Kennedy, A. J., Russo, C., and Yu, D. 2006. Variance and generalized constraints for C} generics. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP). Lecture Notes in Computer Science, vol. 4067, Springer, Berlin, 279--303. Google Scholar
Digital Library
- Ernst, E. 1999. gbeta—A language with virtual attributes, block structure, and propagating, dynamic inheritance. Ph.D. dissertation, Department of Computer Science, University of Aarhus, Arhus, Denmark.Google Scholar
- Ernst, E. 2001. Family polymorphism. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP). Lecture Notes in Computer Science, vol. 2072, Springer, Berlin, 303--326. Google Scholar
Digital Library
- Ernst, E., Ostermann, K., and Cook, W. R. 2006. A virtual class calculus. In Proceedings of the Symposium on Principles of Programming Languages (POPL). ACM, New York, 270--282. Google Scholar
Digital Library
- Ernst, M. D. 2008. Type annotations specification (JSR 308). http://types.cs.washington.edu/jsr308/.Google Scholar
- Fähndrich, M. and DeLine, R. 2002. Adoption and focus: Practical linear types for imperative programming. In Proceedings of the Conference on Programming Language Design and Implementation (PLDI). ACM, New York, 13--24. Google Scholar
Digital Library
- Flanagan, C., Leino, K. R. M., Lillibridge, M., Nelson, G., Saxe, J. B., and Stata, R. 2002. Extended static checking for Java. In Proceedings of the Conference on Programming Language Design and Implementation (PLDI). ACM, New York, 234--245. Google Scholar
Digital Library
- Flatt, M., Krishnamurthi, S., and Felleisen, M. 1999. A programmer's reduction semantics for classes and mixins. In Formal Syntax and Semantics of Java, Lecture Notes in Computer Science, vol. 1523. Springer, Berlin, 241--269. Google Scholar
Digital Library
- Foster, J. N. and Vytiniotis, D. 2006. A theory of Featherweight Java in Isabelle/HOL. In Archive of Formal Proofs, G. Klein et al. Eds. http://afp.sf.net.Google Scholar
- Gasiunas, V., Mezini, M., and Ostermann, K. 2007a. Dependent classes. In Proceedings of the Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA). ACM, New York, 133--152. Google Scholar
Digital Library
- Gasiunas, V., Mezini, M., and Ostermann, K. 2007b. vcn—A calculus for multidimensional virtual classes. www.st.informatik.tu-darmstadt.de/static/pages/projects/mvc/index.html.Google Scholar
- Gosling, J., Joy, B., Steele, G., and Bracha, G. 2005. The Java Language Specification 3rd Ed., Addison-Wesley, Reading, MA. Google Scholar
Digital Library
- Haack, C., Poll, E., Schäfer, J., and Schubert, A. 2007. Immutable objects for a Java-like language. In Programming Languages and Systems, Lecture Notes in Computer Science, vol. 4421, Springer, Berlin, 347--362. Google Scholar
Digital Library
- Hatcliff, J., Leavens, G. T., Leino, K. R. M., Müller, P., and Parkinson, M. 2009. Behavioral interface specification languages. Tech. rep. CS-TR-09-01, School of EECS, University of Central Florida.Google Scholar
- Herrmann, S. 2008. Gradual encapsulation.J. Object Technol.7, 9, 47--68.Google Scholar
Cross Ref
- Herrmann, S., Hundt, C., and Mosconi, M. 2009. ObjectTeams/Java language definition version 1.2 (OTJLD). http://www.objectteams.org/def/1.2/.Google Scholar
- Hirschkoff, D., Hirschowitz, T., Pous, D., Schmitt, A., and Stefani, J.-B. 2005. Component oriented programming with sharing: Containment is not ownership. In Generative Programming and Component Engineering, Lecture Notes in Computer Science, vol. 3676, Springer, Berlin, 389--404. Google Scholar
Digital Library
- Hogg, J. 1991. Islands: Aliasing protection in object-oriented languages. In Proceedings of the Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA). ACM, New York, 271--285. Google Scholar
Digital Library
- Hogg, J., Lea, D., Wills, A., Champeaux, D. d., and Holt, R. 1992. The Geneva convention on the treatment of object aliasing. OOPS Messenger, Report on ECOOP'91 Workshop W3 3, 2, 11--16. Google Scholar
Digital Library
- Igarashi, A., Pierce, B. C., and Wadler, P. 2001. Featherweight Java: A minimal core calculus for Java and GJ. ACM Trans. Program. Lang. Syst. 23, 3, 396--450. Google Scholar
Digital Library
- Igarashi, A. and Viroli, M. 2007. Variant path types for scalable extensibility. In Proceedings of the Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA). ACM, New York, 113--132. Google Scholar
Digital Library
- Jacobs, B. 2004. Weakest precondition reasoning for Java programs with JML annotations. J. Logic Algebraic Program. 58, 61--88.Google Scholar
Cross Ref
- Jacobs, B., Piessens, F., Leino, K. R. M., and Schulte, W. 2005. Safe concurrency for aggregate objects with invariants. In Proceedings of the Conference on Software Engineering and Formal Methods (SEFM). IEEE, Los Alamitos, CA, 137--147. Google Scholar
Digital Library
- Jacobs, B. and Poll, E. 2001. A logic for the Java modeling language JML. In Proceedings of the Conference on Fundamental Approaches to Software Engineering (FASE). Lecture Notes in Computer Science, vol. 2029, Springer, Berlin, 284--299. Google Scholar
Digital Library
- Kassios, I. T. 2006. Dynamic frames: Support for framing, dependencies and sharing without restrictions. In Proceedings of the Symposium on Formal Methods (FM). Google Scholar
Digital Library
- Kennedy, A. and Syme, D. 2001. Design and implementation of generics for the .NET common language Runtime. In Proceedings of the Conference on Programming Language Design and Implementation (PLDI). ACM, New York, 1--12. Google Scholar
Digital Library
- Kleberma, M. 2007. An Isabelle formalization of the Universe type system. M.S. thesis, Technical University Munich and ETH Zurich.Google Scholar
- Klein, G. and Nipkow, T. 2004. A machine-checked model for a Java-like language, virtual machine and compiler. Tech. rep. 0400001T.1, National ICT Australia. http://www4.informatik.tumuenchen.de/~nipkow/pubs/Jinja/.Google Scholar
- Klein, G. and Nipkow, T. 2006. A machine-checked model for a Java-like language, virtual machine and compiler. ACM Trans. Program. Lang. Syst. 28, 4, 619--695. Google Scholar
Digital Library
- Krishnaswami, N. and Aldrich, J. 2005. Permission-based ownership: encapsulating state in higher-order typed languages. In Proceedings of the Conference on Programming Language Design and Implementation (PLDI). ACM, New York, 96--106. Google Scholar
Digital Library
- Leavens, G. T., Leino, K. R. M., and Müller, P. 2007. Specification and verification challenges for sequential object-oriented programs. Formal Aspects Comput. 19, 2, 159--189. Google Scholar
Cross Ref
- Leavens, G. T., Poll, E., Clifton, C., Cheon, Y., Ruby, C., Cok, D., Müller, P., Kiniry, J., Chalin, P., Zimmerman, D. M., and Dietl, W. 2008. JML Reference Manual. http://www.jm/specs.org.Google Scholar
- Leino, K. R. M. and Müller, P. 2004. Object invariants in dynamic contexts. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP). Lecture Notes in Computer Science, vol. 3086, Springer, Berlin, 491--516.Google Scholar
- Leino, K. R. M., Müller, P., and Wallenburg, A. 2008. Flexible immutability with frozen objects. In Proceedings of the Verified Software: Theories, Tools, and Experiments (VSTTE). Lecture Notes in Computer Science, vol. 5295, Springer, Berlin, 192--208. Google Scholar
Digital Library
- Liu, Y. D. and Smith, S. 2008. Pedigree types. In Proceedings of the International Workshop on Aliasing, Confinement and Ownership in Object-Oriented Programming (IWACO).Google Scholar
- Lu, Y. and Potter, J. 2005. A type system for reachability and acyclicity. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP). Lecture Notes in Computer Science, vol. 3586, Springer, Berlin, 479--503. Google Scholar
Digital Library
- Lu, Y. and Potter, J. 2006a. On ownership and accessibility. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP). Lecture Notes in Computer Science, vol. 4067, Springer, Berlin, 99--123. Google Scholar
Digital Library
- Lu, Y. and Potter, J. 2006b. Protecting representation with effect encapsulation. In Proceedings of the Symposium on Principles of Programming Languages (POPL). ACM, New York, 359-- 371. Google Scholar
Digital Library
- Lu, Y., Potter, J., and Xue, J. 2007. Validity invariants and effects. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP). Lecture Notes in Computer Science, vol. 4609, Springer, Berlin, 202--226. Google Scholar
Digital Library
- Madsen, O. L. and Moller-Pedersen, B. 1989. Virtual classes: A powerful mechanism in object-oriented programming. In Proceedings of the Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA). ACM, New York. Google Scholar
Digital Library
- Meyer, B. 1988. Object-Oriented Software Construction 1st Ed., Prentice Hall, Englewood Cliffs, NJ. Google Scholar
Digital Library
- Meyer, B. 1997. Object-Oriented Software Construction 2nd Ed., Prentice Hall, Englewood Cliffs, NJ. Google Scholar
Digital Library
- Müller, P. 2002. Modular Specification and Verification of Object-Oriented Programs. Lecture Notes in Computer Science, vol. 2262, Springer, Berlin.Google Scholar
- Müller, P. 2007. Reasoning about object structures using ownership. In Proceedings of the Conference on Verified Software: Theories, Tools, Experiments (VSTTE). Lecture Notes in Computer Science, vol. 4171, Springer, Berlin, 93--104.Google Scholar
Cross Ref
- Müller, P. and Poetzsch-Heffter, A. 1999. Universes: A type system for controlling representation exposure. In Programming Languages and Fundamentals of Programming, 131--140.Google Scholar
- Müller, P. and Poetzsch-Heffter, A. 2000. A type system for controlling representation exposure in Java. Tech. rep. 269, Fernuniversitat Hagen.Google Scholar
- Müller, P. and Poetzsch-Heffter, A. 2001. Universes: A type system for alias and dependency control. Tech. rep. 279, Fernuniversitat Hagen.Google Scholar
- Müller, P., Poetzsch-Heffter, A., and Leavens, G. T. 2003. Modular specification of frame properties in JML. Concurrency Comput.: Pract. Exper. 15, 117--154.Google Scholar
Cross Ref
- Müller, P., Poetzsch-Heffter, A., and Leavens, G. T. 2006. Modular invariants for layered object structures. Sci. Comput. Program. 62, 253--286. Google Scholar
Digital Library
- Müller, P. and Rudich, A. 2007. Ownership transfer in Universe Types. In Proceedings of the Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA). ACM, New York, 461--478. Google Scholar
Digital Library
- Nägeli, S. 2006. Ownership in design patterns. M.S. thesis, Department of Computer Science, ETH Zurich.Google Scholar
- Naumann, D. A. 2007. Observational purity and encapsulation. Theor. Comput. Sci. 376, 205--224. Google Scholar
Digital Library
- Nipkow, T., Paulson, L., and Wenzel, M. 2002. Isabelle/HOL-- A Proof Assistant for Higher-Order Logic. Lecture Notes in Computer Science, vol. 2283, Springer, Berlin. Google Scholar
Digital Library
- Noble, J., Vitek, J., and Potter, J. M. 1998. Flexible alias protection. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP). Lecture Notes in Computer Science, vol. 1445, Springer, Berlin. Google Scholar
Digital Library
- Nystrom, N., Saraswat, V., Palsberg, J., and Grothoff, C. 2008. Constrained types for objectoriented languages. In Proceedings of the Conference on Object-oriented Programming Systems Languages, and Applications (OOPSLA). ACM, New York, 457--474. Google Scholar
Digital Library
- Odersky, M. 2008. The Scala Language specification, version 2.7. Programming Methods Laboratory, EPFL, Switzerland.Google Scholar
- Odersky, M., Cremet, V., Rockl, C., and Zenger, M. 2003. A nominal theory of objects with dependent types. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP). Lecture Notes in Computer Science, vol. 2743, Springer, Berlin, 201--224.Google Scholar
- Östlund, J., Wrigstad, T., Clarke, D. G., and Akerblom, B. 2008. Ownership, uniqueness, and immutability. In Objects, Components, Models and Patterns, Lecture Notes in Business Information Processing, vol. 11, Springer, Berlin, 178--197.Google Scholar
- Papi, M. M., Ali, M., Jr., Perkins, J. H., and Ernst, M. D. 2008. Practical pluggable types for Java. In Proceedings of the International Symposium on Software Testing and Analysis (ISSTA). 201--212. Google Scholar
Digital Library
- Poetzsch-Heffter, A. and Schäfer, J. 2006. Modular specification of encapsulated object oriented components. In Formal Methods for Components and Objects, Lecture Notes in Computer Science, vol. 4111, Springer, Berlin, 313--341. Google Scholar
Digital Library
- Poetzsch-Heffter, A. and Schäfer, J. 2007. A representation-independent behavioral semantics for object-oriented components. In Formal Methods for Open Object-Based Distributed Systems, Lecture Notes in Computer Science, vol. 4468. Springer, Berlin, 157--173. Google Scholar
Digital Library
- Potanin, A. 2007. Generic ownership: A practical approach to ownership and confinement in object-oriented programming languages. Ph.D. dissertation, Victoria University of Wellington.Google Scholar
- Potanin, A., Noble, J., Clarke, D. G., and Biddle, R. 2006. Generic ownership for generic Java. In Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA). ACM, New York, 311--324. Google Scholar
Digital Library
- Potanin, A., Noble, J., Clarke, D. G., and Biddle, R. 2004. Featherweight generic confinement. In Proceedings of the Conference on Foundations of Object-Oriented Languages (FOOL).Google Scholar
- Reynolds, J. C. 2002. Separation logic: A logic for shared mutable data structures. Logic Comput. Sci. 55. Google Scholar
Digital Library
- Saito, C., Igarashi, A., and Viroli, M. 2007. Lightweight family polymorphism. J. Funct. Program. 18, 285--331. Google Scholar
Digital Library
- Salcianu, A. and Rinard, M. C. 2005. Purity and side-effect analysis for Java programs. In Proceedings of the Conference on Verification, Model Checking, and Abstract Interpretation (VMCAI). Lecture Notes in Computer Science, vol. 3385, Springer, Berlin, 199--215. Google Scholar
Digital Library
- Schäfer, J. 2008. JCoBox compiler. http://softech.informatik.uni-kl.de/Homepage/JCoBox.Google Scholar
- Schäfer, J. and Poetzsch-Heffter, A. 2007. A parameterized type system for simple loose ownership domains. J. Object Technol. 6, 5, 71--100.Google Scholar
Cross Ref
- Schäfer, J. and Poetzsch-Heffter, A. 2008. CoBoxes: Unifying active objects and structured heaps. In Formal Methods for Open Object-Based Distributed Systems, Lecture Notes in Computer Science, vol. 5051, Springer, Berlin, 201--219. Google Scholar
Digital Library
- Schäfer, J., Reitz, M., Gaillourdet, J.-M., and Poetzsch-Heffter, A. 2008. Linking programs to architectures: An object-oriented hierarchical software model based on boxes. In The Common Component Modeling Example, Lecture Notes in Computer Science, vol. 5153. Springer, Berlin, 238--266. Google Scholar
Digital Library
- Sewell, P., Nardelli, F. Z., Owens, S., Peskine, G., Ridge, T., Sarkar, S., and Strnisa, R. 2007. Ott: Effective tool support for the working semanticist. In Proceedings of the International Conference on Functional Programming (ICFP). ACM, New York, 1--12. Google Scholar
Digital Library
- Skoglund, M. 2002. Sharing objects by read-only references. In Proceedings of the Conference on Algebraic Methodology and Software Technology (AMAST). Lecture Notes in Computer Science, vol. 2422, Springer, Berlin, 457--472. Google Scholar
Digital Library
- Skoglund, M. 2003. Investigating object-oriented encapsulation in theory and practice. Ph.D. dissertation, Stockholm University/Royal Institute of Technology.Google Scholar
- Smans, J., Jacobs, B., and Piessens, F. 2009. Implicit dynamic frames: Combining dynamic frames and separation logic. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP). Lecture Notes in Computer Science, Springer, Berlin, 148--172. Google Scholar
Digital Library
- Sun Developer Network. 2010. Secure coding guidelines for the Java programming language, version 3.0. http://java.sun.com/security/seccodeguide.html.Google Scholar
- Tschantz, M. S. and Ernst, M. D. 2005. Javari: Adding reference immutability to Java. In Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA). ACM Press, 211--230. Google Scholar
Digital Library
- von Praun, C. and Gross, T. R. 2001. Object race detection. In Proceedings of the Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA). ACM, New York, 70--82. Google Scholar
Digital Library
- Wadler, P. 1990. Linear types can change the world! In Proceedings of the Conference on Programming Concepts and Methods (PROCOMET). M. Broy and C. B. Jones Eds.Google Scholar
- Wrigstad, T. 2006. Ownership-based alias management. Ph.D. dissertation, Royal Institute of Technology, Sweden.Google Scholar
- Wrigstad, T. and Clarke, D. G. 2007. Existential owners for ownership types. J. Object Technol. 6, 4, 141--159.Google Scholar
Cross Ref
- Zibin, Y., Potanin, A., Ali, M., Artzi, S., Kiezun, A., and Ernst, M. D. 2007. Object and reference immutability using Java generics. In Proceedings of the European Software Engineering Conference/- Foundations of Software Engineering (ESEC/FSE). Google Scholar
Digital Library
- Zibin, Y., Potanin, A., Li, P., Ali, M., and Ernst, M. D. 2010. Ownership and immutability in generic Java. In Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA). ACM, New York. Google Scholar
Digital Library
Index Terms
Separating ownership topology and encapsulation with generic universe types
Recommendations
Ownership transfer in universe types
OOPSLA '07: Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems, languages and applicationsOwnership simplifies reasoning about object-oriented programs by controlling aliasing and modifications of objects. Several type systems have been proposed to express and check ownership statically.
For ownership systems to be practical, they must allow ...
Ownership transfer in universe types
Proceedings of the 2007 OOPSLA conferenceOwnership simplifies reasoning about object-oriented programs by controlling aliasing and modifications of objects. Several type systems have been proposed to express and check ownership statically.
For ownership systems to be practical, they must allow ...
Ownership types for safe programming: preventing data races and deadlocks
OOPSLA '02: Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applicationsThis paper presents a new static type system for multithreaded programs; well-typed programs in our system are guaranteed to be free of data races and deadlocks. Our type system allows programmers to partition the locks into a fixed number of ...






Comments