ownership, encapsulation and the disjointness of type and effect
Ownership types provide a statically enforceable notion of object-level encapsulation. We extend ownership types with computational effects to support reasoning about object-oriented programs. The ensuing system provides both access control and effects reporting. Based on this type system, we codify two formal systems for reasoning about aliasing and the disjointness of computational effects. The first can be used to prove that evaluation of two expressions will never lead to aliases, while the latter can be used to show the non-interference of two expressions.
ownership encapsulation effect ownership types computation support reasoning object-oriented program systems access control type system formalism aliasing evaluation express type-and-effects systems object interference