Deeply Integrating C11 Code Support into Isabelle/PIDE

Frédéric Tuong
(LRI, Université Paris-Saclay)
Burkhart Wolff
(LRI, Université Paris-Saclay)

We present a framework for C code in C11 syntax deeply integrated into the Isabelle/PIDE development environment. Our framework provides an abstract interface for verification back-ends to be plugged-in independently. Thus, various techniques such as deductive program verification or white-box testing can be applied to the same source, which is part of an integrated PIDE document model. Semantic back-ends are free to choose the supported C fragment and its semantics. In particular, they can differ on the chosen memory model or the specification mechanism for framing conditions.

Our framework supports semantic annotations of C sources in the form of comments. Annotations serve to locally control back-end settings, and can express the term focus to which an annotation refers. Both the logical and the syntactic context are available when semantic annotations are evaluated. As a consequence, a formula in an annotation can refer both to HOL or C variables.

Our approach demonstrates the degree of maturity and expressive power the Isabelle/PIDE subsystem has achieved in recent years. Our integration technique employs Lex and Yacc style grammars to ensure efficient deterministic parsing. We present two case studies for the integration of (known) semantic back-ends in order to validate the design decisions for our back-end interface.

In Rosemary Monahan, Virgile Prevosto and Jose Proença: Proceedings Fifth Workshop on Formal Integrated Development Environment (F-IDE 2019), Porto, Portugal, 7th October 2019, Electronic Proceedings in Theoretical Computer Science 310, pp. 13–28.
Published: 23rd December 2019.

ArXived at: https://dx.doi.org/10.4204/EPTCS.310.3 bibtex PDF
References in reconstructed bibtex, XML and HTML format (approximated).
Comments and questions to: eptcs@eptcs.org
For website issues: webmaster@eptcs.org