POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Islands: aliasing protection in object-oriented languages
OOPSLA '91 Conference proceedings on Object-oriented programming systems, languages, and applications
Aspect: detecting bugs with abstract dependences
ACM Transactions on Software Engineering and Methodology (TOSEM)
Region-based memory management
Information and Computation
Ownership types for flexible alias protection
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Data groups: specifying the modification of extended state
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
Featherweight Java: a minimal core calculus for Java and GJ
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A parameterized type system for race-free Java programs
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Encapsulating objects with confined types
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Syntactic control of interference
POPL '78 Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
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
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
Towards a Formalization of Constraint Diagrams
HCC '01 Proceedings of the IEEE 2001 Symposia on Human Centric Computing Languages and Environments (HCC'01)
Adding wildcards to the Java programming language
Proceedings of the 2004 ACM symposium on Applied computing
Object ownership and containment
Object ownership and containment
TLDI '05 Proceedings of the 2005 ACM SIGPLAN international workshop on Types in languages design and implementation
Transition predicate abstraction and fair termination
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Connecting effects and uniqueness with adoption
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Scale-free geometry in OO programs
Communications of the ACM - Adaptive complex enterprises
Permission-based ownership: encapsulating state in higher-order typed languages
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
Scalable component abstractions
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Protecting representation with effect encapsulation
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A design discipline and language features for modular reasoning in aspect-oriented programs
A design discipline and language features for modular reasoning in aspect-oriented programs
Generic ownership for generic Java
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Understanding the shape of Java software
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
The runtime structure of object ownership
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
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
MAO: ownership and effects for more effective reasoning about aspects
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
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
Alias count facilitate ownership transfer
Companion to the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
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
GC assertions: using the garbage collector to check heap properties
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
International Workshop on Aliasing, Confinement and Ownership in Object-Oriented Programming
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
A type and effect system for deterministic parallel Java
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
Ownership Downgrading for Ownership Types
APLAS '09 Proceedings of the 7th Asian Symposium on Programming Languages and Systems
Modular reasoning about invariants over shared state with interposed data members
Proceedings of the 4th ACM SIGPLAN workshop on Programming languages meets program verification
Parallel programming must be deterministic by default
HotPar'09 Proceedings of the First USENIX conference on Hot topics in parallelism
Ownership and immutability in generic Java
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Encoding ownership types in java
TOOLS'10 Proceedings of the 48th international conference on Objects, models, components, patterns
Types, regions, and effects for safe programming with object-oriented parallel frameworks
Proceedings of the 25th European conference on Object-oriented programming
Tunable static inference for generic universe types
Proceedings of the 25th European conference on Object-oriented programming
Separating ownership topology and encapsulation with generic universe types
ACM Transactions on Programming Languages and Systems (TOPLAS)
Using ownership to reason about inherent parallelism in object-oriented programs
CC'10/ETAPS'10 Proceedings of the 19th joint European conference on Theory and Practice of Software, international conference on Compiler Construction
ESOP'12 Proceedings of the 21st European conference on Programming Languages and Systems
Multiple aggregate entry points for ownership types
ECOOP'12 Proceedings of the 26th European conference on Object-Oriented Programming
Combining traits with boxes and ownership types in a Java-like setting
Science of Computer Programming
Structural lock correlation with ownership types
ESOP'13 Proceedings of the 22nd European conference on Programming Languages and Systems
Local Reasoning for Global Invariants, Part II: Dynamic Boundaries
Journal of the ACM (JACM)
The need for capability policies
Proceedings of the 15th Workshop on Formal Techniques for Java-like Programs
Confinement framework for encapsulating objects
Frontiers of Computer Science: Selected Publications from Chinese Universities
Aliasing in Object-Oriented Programming
Notions of aliasing and ownership
Aliasing in Object-Oriented Programming
Understanding ownership types with dependent types
Aliasing in Object-Oriented Programming
Object graphs with ownership domains: an empirical study
Aliasing in Object-Oriented Programming
Alias control for deterministic parallelism
Aliasing in Object-Oriented Programming
State based encapsulation for modular reasoning about behavior-preserving refactorings
Aliasing in Object-Oriented Programming
Hi-index | 0.00 |
Existing 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 objects interact. Multiple Ownership is an ownership type system where objects can have more than one owner, and the resulting ownership structure forms a DAG. We give a straightforward model for multiple ownership, focusing in particular on how multiple ownership can support a powerful effects system that determines when two computations interfere-in spite of the DAG structure. We present a core programming language MOJO, Multiple ownership for Java-like Objects, including a type and effects system, and soundness proof. In comparison to other systems, MOJO imposes absolutely no restrictions on pointers, modifications or programs' structure, but in spite of this, MOJO's effects can be used to reason about or describe programs' behaviour.