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 :
بازگشت