The Common Lisp object system: an overview
European conference on object-oriented programming on ECOOP '87
A semantics of multiple inheritance
Information and Computation - Semantics of Data Types
A parallel object-oriented language with inheritance and subtyping
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
Verification of sequential and concurrent programs
Verification of sequential and concurrent programs
Parents are shared parts of objects: inheritance and encapsulation in SELF
Lisp and Symbolic Computation
A behavioral notion of subtyping
ACM Transactions on Programming Languages and Systems (TOPLAS)
A natural semantics for Eiffel dynamic binding
ACM Transactions on Programming Languages and Systems (TOPLAS)
Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
Ten Years of Hoare's Logic: A Survey—Part I
ACM Transactions on Programming Languages and Systems (TOPLAS)
An axiomatic basis for computer programming
Communications of the ACM
Featherweight Java: a minimal core calculus for Java and GJ
ACM Transactions on Programming Languages and Systems (TOPLAS)
A Programming Logic for Sequential Java
ESOP '99 Proceedings of the 8th European Symposium on Programming Languages and Systems
Modeling Subobject-based Inheritance
ECCOP '96 Proceedings of the 10th European Conference on Object-Oriented Programming
Designing an Object-Oriented Programming Language with Behavioural Subtyping
Proceedings of the REX School/Workshop on Foundations of Object-Oriented Languages
Inheritance: From Code Reuse to Reasoning Reuse
ICSR '98 Proceedings of the 5th International Conference on Software Reuse
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
A proof outline logic for object-oriented programming
Theoretical Computer Science - Formal methods for components and objects
An operational semantics and type safety prooffor multiple inheritance in C++
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Creol: a type-safe object-oriented model for distributed concurrent systems
Theoretical Computer Science - Components and objects
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The 35th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Separation logic, abstraction and inheritance
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Enhancing modular OO verification with separation logic
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Separation Logic for Multiple Inheritance
Electronic Notes in Theoretical Computer Science (ENTCS)
FM '08 Proceedings of the 15th international symposium on Formal Methods
Verification of object-oriented software: The KeY approach
Verification of object-oriented software: The KeY approach
A dynamic binding strategy for multiple inheritance and asynchronously communicating objects
FMCO'04 Proceedings of the Third international conference on Formal Methods for Components and Objects
Reasoning about multiple related abstractions with MultiStar
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Incremental reasoning with lazy behavioral subtyping for multiple inheritance
Science of Computer Programming
Hi-index | 0.00 |
Object-orientation supports code reuse and incremental programming. Multiple inheritance increases the power of code reuse, but complicates the binding of method calls and thereby program analysis. Behavioral subtyping allows program analysis under an open world assumption ; i.e., under the assumption that class hierarchies are extensible. However, method redefinition is severely restricted by behavioral subtyping, and multiple inheritance often leads to conflicting restrictions from independently designed superclasses. This paper presents an approach to incremental reasoning for multiple inheritance under an open world assumption. The approach, based on a notion of lazy behavioral subtyping , is less restrictive than behavioral subtyping and fits well with multiple inheritance, as it incrementally imposes context-dependent behavioral constraints on new subclasses. We formalize the approach as a calculus, for which we show soundness.