Relations as semantic constructs in an object-oriented language
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
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
The unified software development process
The unified software development process
The entity-relationship model—toward a unified view of data
ACM Transactions on Database Systems (TODS) - Special issue: papers from the international conference on very large data bases: September 22–24, 1975, Framingham, MA
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
A Relationship Mechanism for a Strongly Typed Object-Oriented Database Programming Language
VLDB '91 Proceedings of the 17th International Conference on Very Large Data Bases
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
An overview of JML tools and applications
International Journal on Software Tools for Technology Transfer (STTT) - Special section on formal methods for industrial critical systems
Proceedings of the 5th international conference on Aspect-oriented software development
Modular invariants for layered object structures
Science of Computer Programming - Special issue on source code analysis and manipulation (SCAM 2005)
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Lost in translation: formalizing proposed extensions to c#
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Design of a class library for association relationships
LCSD '07 Proceedings of the 2007 Symposium on Library-Centric Software Design
Using history invariants to verify observers
ESOP'07 Proceedings of the 16th European conference on Programming
The spec# programming system: an overview
CASSIS'04 Proceedings of the 2004 international conference on Construction and Analysis of Safe, Secure, and Interoperable Smart Devices
First-class relationships in an object-oriented language
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
A relational model of object collaborations and its use in reasoning about relationships
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
Verifying multi-object invariants with relationships
Proceedings of the 25th European conference on Object-oriented programming
Hi-index | 0.00 |
Reasoning about object-oriented programs is difficult since such programs usually involve aliasing, and it is not easy to identify the ways objects can relate to each other and thus to confine a program's heap. In this paper, we address this problem in the context of a relationship-based programming language. In relationship-based programming languages, relationships are first-class citizens and allow a precise description of inter-object relationships. Relationships enforce a modularization discipline that is closer to the natural modularity inherent to many problem domains and that yields, as a result, program heaps that are DAGs. We further describe a mechanism, member interposition, that leverages the new modularization discipline and supports encapsulation of fields of shared objects. We have implemented the described modularization discipline and the mechanism of member interposition in the context of Rumer, a relationship-based programming language with support for contract specifications. We discuss the implications of member interposition for the modular verification of object invariants with an example. Relationships and interposed members provide an alternative to ownership type systems.