skip to main content
10.1145/3236454.3236483acmconferencesArticle/Chapter ViewAbstractPublication PagesisstaConference Proceedingsconference-collections
short-paper

Reasoning about functional programming in Java and C++

Published:16 July 2018Publication History

ABSTRACT

Verification projects on industrial code have required reasoning about functional programming constructs in Java 8. General functional programming requires reasoning about how the specifications of function objects that are inputs to a method combine to produce the specifications of output function objects. This short paper describes our in-progress experience in adapting prior work (Kassios & Müller) to Java 8, JML, OpenJML, and to ACSL++, a specification language for C++ built on ACSL.

References

  1. P. Baudin, P.Cuoq, J-C. Filliâtre, C. Marché, B. Monate, Y. Moy, and V. Prevosto. 2008ff. ACSL: ANSI C Specification Language. http://frama-c.com/download/acsl_1.4.pdf.Google ScholarGoogle Scholar
  2. David R. Cok and Serdar Tasiran. 2018. Practical Methods for Reasoning about Java 8's Functional Programming Features. Submitted to VSTTE 2018.Google ScholarGoogle Scholar
  3. Frama-C 2011ff. https://frama-c.com.Google ScholarGoogle Scholar
  4. Bart Jacobs, Jan Smans, and Frank Piessen. 2017. The VeriFast Program Verifier: A Tutorial. https://zenodo.org/record/1068185#.WvbWhy97HyU.Google ScholarGoogle Scholar
  5. I. T. Kassios and P. Müller. 2011. Modular Specification and Verification of Delegation with SMT Solvers. Technical Report. ETH Zurich.Google ScholarGoogle Scholar
  6. Matthew Parkinson and Gavin Bierman. 2005. Separation Logic and Abstraction. In Proceedings of the 32Nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL '05). ACM, New York, NY, USA, 247--258. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. VESSEDIA. 2018. The work on C++ specification is part of the VESSEDIA project https://vessedia.eu. The VESSEDIA project has received funding from the European Union's Horizon 2020 research and innovation programme under grant agreement No. 731453.Google ScholarGoogle Scholar
  1. Reasoning about functional programming in Java and C++

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in
        • Published in

          cover image ACM Conferences
          ISSTA '18: Companion Proceedings for the ISSTA/ECOOP 2018 Workshops
          July 2018
          143 pages
          ISBN:9781450359399
          DOI:10.1145/3236454

          Copyright © 2018 ACM

          Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 16 July 2018

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • short-paper

          Acceptance Rates

          Overall Acceptance Rate58of213submissions,27%

          Upcoming Conference

          ISSTA '24

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader