Semantics-based program verifiers for all languages

Andrei Stefánescu, Daejun Park, Shijiao Yuwen, Yilong Li, Grigore Rosu

Research output: Chapter in Book/Report/Conference proceedingConference contribution

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.

Original languageEnglish (US)
Title of host publicationOOPSLA 2016 - Proceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications
EditorsEelco Visser, Yannis Smaragdakis
PublisherAssociation for Computing Machinery
Pages74-91
Number of pages18
ISBN (Electronic)9781450344449
DOIs
StatePublished - Oct 19 2016
Event2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2016 - Amsterdam, Netherlands
Duration: Oct 31 2016Nov 1 2016

Publication series

NameProceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications, OOPSLA
Volume02-04-November-2016

Conference

Conference2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2016
Country/TerritoryNetherlands
CityAmsterdam
Period10/31/1611/1/16

Keywords

  • K framework
  • Matching logic
  • Reachability logic

ASJC Scopus subject areas

  • Software

Fingerprint

Dive into the research topics of 'Semantics-based program verifiers for all languages'. Together they form a unique fingerprint.

Cite this