Semantics-based program verifiers for all languages

29Citations
Citations of this article
28Readers
Mendeley users who have this article in their library.
Get full text

Abstract

We present a language-independent verification framework that can be instantiated with an operational semantics to automatically generate a program verifier. The framework treats both the operational semantics and the program correctness specifications as reachability rules between matching logic patterns, and uses the sound and relatively complete reachability logic proof system to prove the specifications using the semantics. We instantiate the framework with the semantics of one academic language, KernelC, as well as with three recent semantics of real-world languages, C, Java, and JavaScript, developed independently of our verification infrastructure. We evaluate our approach empirically and show that the generated program verifiers can check automatically the full functional correctness of challenging heap-manipulating programs implementing operations on list and tree data structures, like AVL trees. This is the first approach that can turn the operational semantics of real-world languages into correct-by-construction automatic verifiers.

Cite

CITATION STYLE

APA

Stefanescu, A., Park, D., Yuwen, S., Li, Y., & Roşu, G. (2016). Semantics-based program verifiers for all languages. ACM SIGPLAN Notices, 51(10), 74–91. https://doi.org/10.1145/2983990.2984027

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free