Logo Oapen
  • Search
  • Join
    • Deposit
    • For Librarians
    • For Publishers
    • For Researchers
    • Funders
    • Resources
    • OAPEN
    • For Librarians
    • For Publishers
    • For Researchers
    • Funders
    • Resources
    • OAPEN
    View Item 
    •   OAPEN Home
    • View Item
    •   OAPEN Home
    • View Item
    JavaScript is disabled for your browser. Some features of this site may not work without it.

    Chapter Dynamic Dispatch for Method Contracts Through Abstract Predicates

    Thumbnail
    Download PDF Viewer
    Author(s)
    Mostowski, Wojciech
    Ulbrich, Mattias
    Collection
    European Research Council (ERC)
    Language
    English
    Show full item record
    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. 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.
    Book
    Transactions on Modularity and Composition I
    URI
    http://library.oapen.org/handle/20.500.12657/30616
    Keywords
    dispatch; encapsulation; ghost; dispatch; encapsulation; ghost; Boolean data type; Dynamic dispatch; First-order logic; Inheritance (object-oriented programming); Java Modeling Language; KeY; Liskov substitution principle; Postcondition; Predicate (mathematical logic)
    DOI
    10.1007/978-3-319-46969-0 7
    OCN
    1030820407
    Publisher
    Springer Nature
    Publisher website
    https://www.springernature.com/gp/products/books
    Publication date and place
    2017
    Grantor
    • FP7 Ideas: European Research Council - 258405 - VERCORS - FP7 Research grant informationFind all documents
    Classification
    Computing & information technology
    Pages
    30
    Public remark
    Relevant Wikipedia pages: Boolean data type - https://en.wikipedia.org/wiki/Boolean_data_type; Dynamic dispatch - https://en.wikipedia.org/wiki/Dynamic_dispatch; First-order logic - https://en.wikipedia.org/wiki/First-order_logic; Inheritance (object-oriented programming) - https://en.wikipedia.org/wiki/Inheritance_(object-oriented_programming); Java Modeling Language - https://en.wikipedia.org/wiki/Java_Modeling_Language; KeY - https://en.wikipedia.org/wiki/KeY; Liskov substitution principle - https://en.wikipedia.org/wiki/Liskov_substitution_principle; Postcondition - https://en.wikipedia.org/wiki/Postcondition; Predicate (mathematical logic) - https://en.wikipedia.org/wiki/Predicate_(mathematical_logic)
    Rights
    https://creativecommons.org/licenses/by/4.0/
    • Imported or submitted locally

    Browse

    All of OAPENSubjectsPublishersLanguagesCollections

    My Account

    LoginRegister

    Export

    Repository metadata
    Logo Oapen
    • For Librarians
    • For Publishers
    • For Researchers
    • Funders
    • Resources
    • OAPEN

    Newsletter

    • Subscribe to our newsletter
    • view our news archive

    Follow us on

    License

    • If not noted otherwise all contents are available under Attribution 4.0 International (CC BY 4.0)

    Credits

    • logo EU
    • This project received funding from the European Union's Horizon 2020 research and innovation programme under grant agreement No 683680, 810640, 871069 and 964352.

    OAPEN is based in the Netherlands, with its registered office in the National Library in The Hague.

    Director: Niels Stern

    Address:
    OAPEN Foundation
    Prins Willem-Alexanderhof 5
    2595 BE The Hague
    Postal address:
    OAPEN Foundation
    P.O. Box 90407
    2509 LK The Hague

    Websites:
    OAPEN Home: www.oapen.org
    OAPEN Library: library.oapen.org
    DOAB: www.doabooks.org

     

     

    Export search results

    The export option will allow you to export the current search results of the entered query to a file. Differen formats are available for download. To export the items, click on the button corresponding with the preferred download format.

    A logged-in user can export up to 15000 items. If you're not logged in, you can export no more than 500 items.

    To select a subset of the search results, click "Selective Export" button and make a selection of the items you want to export. The amount of items that can be exported at once is similarly restricted as the full export.

    After making a selection, click one of the export format buttons. The amount of items that will be exported is indicated in the bubble next to export format.