Virtual classes: a powerful mechanism in object-oriented programming
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
PLDI '91 Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation
Islands: aliasing protection in object-oriented languages
OOPSLA '91 Conference proceedings on Object-oriented programming systems, languages, and applications
The Geneva convention on the treatment of object aliasing
ACM SIGPLAN OOPS Messenger
Program verification through soft typing
ACM Computing Surveys (CSUR)
Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
Ownership types for flexible alias protection
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Alias burying: unique variables without destructive reads
Software—Practice & Experience - Special issue on aliasing in object-oriented systems
Design and implementation of generics for the .NET Common language runtime
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
Representation independence, confinement and access control [extended abstract]
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Featherweight Java: a minimal core calculus for Java and GJ
ACM Transactions on Programming Languages and Systems (TOPLAS)
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Adoption and focus: practical linear types for imperative programming
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Extended static checking for Java
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Object-Oriented Software Construction
Object-Oriented Software Construction
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 applications
Ownership, encapsulation and the disjointness of type and effect
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Alias annotations for program understanding
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Ownership types for object encapsulation
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A Logic for the Java Modeling Language JML
FASE '01 Proceedings of the 4th International Conference on Fundamental Approaches to Software Engineering
A Programmer's Reduction Semantics for Classes and Mixins
Formal Syntax and Semantics of Java
Separation Logic: A Logic for Shared Mutable Data Structures
LICS '02 Proceedings of the 17th Annual IEEE Symposium on Logic in Computer Science
Sharing Objects by Read-Only References
AMAST '02 Proceedings of the 9th International Conference on Algebraic Methodology and Software Technology
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
Capabilities for Sharing: A Generalisation of Uniqueness and Read-Only
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Ownership types for safe region-based memory management in real-time Java
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
Saving the world from bad beans: deployment-time confinement checking
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
Using types to enforce architectural structure
Using types to enforce architectural structure
Safejava: a unified type system for safe programming
Safejava: a unified type system for safe programming
A practical type system and language for reference immutability
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley))
Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley))
Object ownership and containment
Object ownership and containment
Permission-based ownership: encapsulating state in higher-order typed languages
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
Javari: adding reference immutability to Java
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
X10: an object-oriented approach to non-uniform cluster computing
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Safe Concurrency for Aggregate Objects with Invariants
SEFM '05 Proceedings of the Third IEEE International Conference on Software Engineering and Formal Methods
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Protecting representation with effect encapsulation
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A machine-checked model for a Java-like language, virtual machine, and compiler
ACM Transactions on Programming Languages and Systems (TOPLAS)
Generic ownership for generic Java
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Modular invariants for layered object structures
Science of Computer Programming - Special issue on source code analysis and manipulation (SCAM 2005)
Tribe: a simple virtual class calculus
Proceedings of the 6th international conference on Aspect-oriented software development
Observational purity and encapsulation
Theoretical Computer Science
Specification and verification challenges for sequential object-oriented programs
Formal Aspects of Computing
Object and reference immutability using Java generics
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Ott: effective tool support for the working semanticist
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
Variant path types for scalable extensibility
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Ownership transfer in universe types
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Lightweight family polymorphism*
Journal of Functional Programming
Practical pluggable types for java
ISSTA '08 Proceedings of the 2008 international symposium on Software testing and analysis
CoBoxes: Unifying Active Objects and Structured Heaps
FMOODS '08 Proceedings of the 10th IFIP WG 6.1 international conference on Formal Methods for Open Object-Based Distributed Systems
A Model for Java with Wildcards
ECOOP '08 Proceedings of the 22nd European conference on Object-Oriented Programming
Regional Logic for Local Reasoning about Global Invariants
ECOOP '08 Proceedings of the 22nd European conference on Object-Oriented Programming
A Unified Framework for Verification Techniques for Object Invariants
ECOOP '08 Proceedings of the 22nd European conference on Object-Oriented Programming
Linking Programs to Architectures: An Object-Oriented Hierarchical Software Model Based on Boxes
The Common Component Modeling Example
Flexible Immutability with Frozen Objects
VSTTE '08 Proceedings of the 2nd international conference on Verified Software: Theories, Tools, Experiments
Constrained types for object-oriented languages
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Static extraction of sound hierarchical runtime object graphs
Proceedings of the 4th international workshop on Types in language design and implementation
Universe Types for Topology and Encapsulation
Formal Methods for Components and Objects
Existential Quantification for Variant Ownership
ESOP '09 Proceedings of the 18th European Symposium on Programming Languages and Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
International Workshop on Aliasing, Confinement and Ownership in Object-Oriented Programming
Comparing universes and existential ownership types
International Workshop on Aliasing, Confinement and Ownership in Object-Oriented Programming
Implicit Dynamic Frames: Combining Dynamic Frames and Separation Logic
Genoa Proceedings of the 23rd European Conference on ECOOP 2009 --- Object-Oriented Programming
Practical reasoning about invocations and implementations of pure methods
FASE'07 Proceedings of the 10th international conference on Fundamental approaches to software engineering
Immutable objects for a java-like language
ESOP'07 Proceedings of the 16th European conference on Programming
A representation-independent behavioral semantics for object-oriented components
FMOODS'07 Proceedings of the 9th IFIP WG 6.1 international conference on Formal methods for open object-based distributed systems
Isabelle/HOL: a proof assistant for higher-order logic
Isabelle/HOL: a proof assistant for higher-order logic
Ownership and immutability in generic Java
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Modular specification of encapsulated object-oriented components
FMCO'05 Proceedings of the 4th international conference on Formal Methods for Components and Objects
ESC/Java2: uniting ESC/Java and JML
CASSIS'04 Proceedings of the 2004 international conference on Construction and Analysis of Safe, Secure, and Interoperable Smart Devices
Purity and side effect analysis for java programs
VMCAI'05 Proceedings of the 6th international conference on Verification, Model Checking, and Abstract Interpretation
A type system for reachability and acyclicity
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
Component-oriented programming with sharing: containment is not ownership
GPCE'05 Proceedings of the 4th international conference on Generative Programming and Component Engineering
Dynamic frames: support for framing, dependencies and sharing without restrictions
FM'06 Proceedings of the 14th international conference on Formal Methods
On ownership and accessibility
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
Scoped types and aspects for real-time java
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
Variance and generalized constraints for C# generics
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
Validity invariants and effects
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
Aliasing in Object-Oriented Programming
Understanding ownership types with dependent types
Aliasing in Object-Oriented Programming
Object ownership in program verification
Aliasing in Object-Oriented Programming
Hi-index | 0.00 |
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.