Hide metadata

dc.date.accessioned2013-03-12T08:14:29Z
dc.date.available2013-03-12T08:14:29Z
dc.date.issued2007en_US
dc.date.submitted2008-03-28en_US
dc.identifier.urihttp://hdl.handle.net/10852/9861
dc.description.abstractLate binding allows flexible code reuse but complicates formal reasoning significantly, as a method call’s receiver class is not statically known. This is especially true when programs are incrementally developed by extending class hierarchies. This report develops a novel method to reason about late bound method calls. In contrast to traditional behavioral subtyping, reverification is avoided without restricting method overriding to fully behavior-preserving redefinition. The approach ensures that when analyzing the methods of a class, it suffices to consider that class and its superclasses. Thus, the full class hierarchy is not needed, and incremental reasoning is supported. We formalize this approach as a calculus which lazily imposes context-dependent subtyping constraints on method definitions. The calculus ensures that all method specifications required by late bound calls remain satisfied when new classes extend a class hierarchy. The calculus does not depend on a specific program logic, but the examples in the report use a Hoare-style proof system. We show soundness of the analysis method.nor
dc.language.isoengen_US
dc.relation.ispartofResearch report http://urn.nb.no/URN:NBN:no-35645en_US
dc.relation.urihttp://urn.nb.no/URN:NBN:no-35645
dc.titleLazy behavioral subtypingen_US
dc.typeResearch reporten_US
dc.date.updated2008-04-04en_US
dc.creator.authorDovland, Johanen_US
dc.creator.authorJohnsen, Einar B.en_US
dc.creator.authorOwe, Olafen_US
dc.creator.authorSteffen, Martinen_US
dc.subject.nsiVDP::420en_US
dc.identifier.urnURN:NBN:no-18810en_US
dc.type.documentForskningsrapporten_US
dc.identifier.duo71311en_US
dc.identifier.bibsys080525946en_US
dc.identifier.fulltextFulltext https://www.duo.uio.no/bitstream/handle/10852/9861/1/Report368.pdf


Files in this item

Appears in the following Collection

Hide metadata