@inproceedings{7127fa5604014fa9b29f249aa53994f4,
title = "Dynamic Dispatch for Method Contracts through Abstract Predicates",
abstract = "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. 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.",
keywords = "EWI-26141, JML, Abstract predicates, IR-96984, Design By Contract, Dynamic dispatch, METIS-312669, Modular specification",
author = "Wojciech Mostowski and Mattias Ulbrich",
note = "10.1145/2724525.2724574 ; 14th International Conference on Modularity (MODULARITY 2015), Fort Collins, CO, USA ; Conference date: 16-03-2015",
year = "2015",
month = mar,
day = "16",
doi = "10.1145/2724525.2724574",
language = "Undefined",
isbn = "978-1-4503-3249-1",
series = "MODULARITY 2015",
publisher = "Association for Computing Machinery",
pages = "109--116",
booktitle = "Proceedings of the 14th International Conference on Modularity (MODULARITY 2015)",
address = "United States",
}