Islands: aliasing protection in object-oriented languages
OOPSLA '91 Conference proceedings on Object-oriented programming systems, languages, and applications
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Pattern-oriented software architecture: a system of patterns
Pattern-oriented software architecture: a system of patterns
Ownership types for flexible alias protection
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
The object constraint language: precise modeling with UML
The object constraint language: precise modeling with UML
Patterns in Java, volume 2
Software—Practice & Experience - Special issue on aliasing in object-oriented systems
Alias burying: unique variables without destructive reads
Software—Practice & Experience - Special issue on aliasing in object-oriented systems
Java Language Specification, Second Edition: The Java Series
Java Language Specification, Second Edition: The Java Series
Verifying reachability invariants of linked structures
POPL '83 Proceedings of the 10th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Computer
A Dynamic Logic for the Formal Verification of Java Card Programs
JavaCard '00 Revised Papers from the First International Workshop on Java on Smart Cards: Programming and Security
Local Reasoning for Global Invariants, Part II: Dynamic Boundaries
Journal of the ACM (JACM)
Hi-index | 0.00 |
Encapsulation is a major concept in object-oriented designs as design pattern catalogues, approaches for alias control, and the need for modular correctness of components demonstrate. The way encapsulation can be formally specified in existing approaches has several shortcomings. We show how encapsulation in sequential Java programs is specified by means of a new concept, called encapsulation predicates, in a clearly defined and comprehensible way, well fitting into the concept of design by contract. Encapsulation predicates extend existing functional specification languages. There are two kinds: basic predicates, which provide the actual extension, and convenience predicates, which are abbreviations for often used specification patterns. With encapsulation predicates, encapsulation properties in design patterns can be modelled and approaches to control aliasing can be simulated. Specifications containing encapsulation predicates are deductively checkable, but can also be tackled by static analysis methods which are similar to alias control approaches.