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...
Saved in:
Main Author: | |
---|---|
Other Authors: | |
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 |