Logo Oapen
  • Join
    • Deposit
    • 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); EU collection
        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 and 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.