Title of article
Incremental reasoning with lazy behavioral subtyping for multiple inheritance
Author/Authors
Johan Dovland، نويسنده , , Einar Broch Johnsen، نويسنده , , Olaf Owe، نويسنده , , Martin Steffen، نويسنده ,
Issue Information
ماهنامه با شماره پیاپی سال 2011
Pages
27
From page
915
To page
941
Abstract
Object-orientation supports code reuse and incremental programming. Multiple inheritance increases the possibilities for 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 may lead to conflicting restrictions from independently designed superclasses. This paper presents a more liberal approach to incremental reasoning for multiple inheritance under an open world assumption. The approach, based on lazy behavioral subtyping, is well-suited for multiple inheritance, as it incrementally imposes context-dependent behavioral constraints on new subclasses. We first present the approach for a simple language and show how incremental reasoning can be combined with flexible code reuse. Then this language is extended with a hierarchy of interface types which is independent of the class hierarchy. In this setting, flexible code reuse can be combined with modular reasoning about external calls in the sense that each class is analyzed only once. We formalize the approach as a calculus and show soundness for both languages.
Keywords
Lazy behavioral subtyping , Object orientation , Multiple inheritance , Late binding , Proof systems , Incremental reasoning , Method redefinition , Code reuse
Journal title
Science of Computer Programming
Serial Year
2011
Journal title
Science of Computer Programming
Record number
1080214
Link To Document