Chapter Dynamic Dispatch for Method Contracts Through Abstract Predicates

Dynamic method dispatch is a core feature of object-oriented programming by which the executed implementation for a polymorphic method is only chosen at runtime. In this paper, we present a specification and verification methodology which extends the concept of dynamic dispatch to design-by-contract...

Full description

Saved in:
Bibliographic Details
Main Author: Mostowski, Wojciech (auth)
Other Authors: Ulbrich, Mattias (auth)
Format: Electronic Book Chapter
Language:English
Published: Springer Nature 2017
Subjects:
Online Access:DOAB: download the publication
DOAB: description of the publication
Tags: Add Tag
No Tags, Be the first to tag this record!

MARC

LEADER 00000naaaa2200000uu 4500
001 doab_20_500_12854_30241
005 20210210
003 oapen
006 m o d
007 cr|mn|---annan
008 20210210s2017 xx |||||o ||| 0|eng d
020 |a 978-3-319-46969-0 7 
040 |a oapen  |c oapen 
024 7 |a 10.1007/978-3-319-46969-0 7  |c doi 
041 0 |a eng 
042 |a dc 
072 7 |a U  |2 bicssc 
100 1 |a Mostowski, Wojciech  |4 auth 
700 1 |a Ulbrich, Mattias  |4 auth 
245 1 0 |a Chapter Dynamic Dispatch for Method Contracts Through Abstract Predicates 
260 |b Springer Nature  |c 2017 
300 |a 1 electronic resource (30 p.) 
336 |a text  |b txt  |2 rdacontent 
337 |a computer  |b c  |2 rdamedia 
338 |a online resource  |b cr  |2 rdacarrier 
506 0 |a Open Access  |2 star  |f Unrestricted online access 
520 |a Dynamic method dispatch is a core feature of object-oriented programming by which the executed implementation for a polymorphic method is only chosen at runtime. In this paper, we present a specification and verification methodology which extends the concept of dynamic dispatch to design-by-contract specifications. The formal specification language JML has only rudimentary means for polymorphic abstraction in expressions. We promote these to fully flexible specification-only query methods called model methods that can, like ordinary methods, be overridden to give specifications a new semantics in subclasses in a transparent and modular fashion. Moreover, we allow them to refer to more than one program state which give us the possibility to fully abstract and encapsulate two-state specification contexts, i.e., history constraints and method postconditions. Finally, we provide an elegant and flexible mechanism to specify restrictions on specifications in subtypes. Thus behavioural subtyping can be enforced, yet it still allows for other specification paradigms. We provide the semantics for model methods by giving a translation into a first order logic and according proof obligations. We fully implemented this framework in the KeY program verifier and successfully verified relevant examples. We have also implemented an extension to KeY to support permission-based verification of concurrent Java programs. In this context model methods provide a modular specification method to treat code synchronisation through API methods. 
536 |a FP7 Ideas: European Research Council 
540 |a Creative Commons  |f https://creativecommons.org/licenses/by/4.0/  |2 cc  |4 https://creativecommons.org/licenses/by/4.0/ 
546 |a English 
650 7 |a Computing & information technology  |2 bicssc 
653 |a dispatch 
653 |a encapsulation 
653 |a ghost 
653 |a dispatch 
653 |a encapsulation 
653 |a ghost 
653 |a Boolean data type 
653 |a Dynamic dispatch 
653 |a First-order logic 
653 |a Inheritance (object-oriented programming) 
653 |a Java Modeling Language 
653 |a KeY 
653 |a Liskov substitution principle 
653 |a Postcondition 
653 |a Predicate (mathematical logic) 
773 1 0 |t Transactions on Modularity and Composition I  |7 nnaa  |o OAPEN Library UUID: 21d41b6d-e1ff-457f-8fed-533a2d56604f 
856 4 0 |a www.oapen.org  |u https://library.oapen.org/bitstream/20.500.12657/30616/1/644831.pdf  |7 0  |z DOAB: download the publication 
856 4 0 |a www.oapen.org  |u https://library.oapen.org/bitstream/20.500.12657/30616/1/644831.pdf  |7 0  |z DOAB: download the publication 
856 4 0 |a www.oapen.org  |u https://library.oapen.org/bitstream/20.500.12657/30616/1/644831.pdf  |7 0  |z DOAB: download the publication 
856 4 0 |a www.oapen.org  |u https://directory.doabooks.org/handle/20.500.12854/30241  |7 0  |z DOAB: description of the publication