Title :
Syntax-Driven Program Verification of Matching Logic Properties
Author :
Bianculli, Domenico ; Filieri, Antonio ; Ghezzi, Carlo ; Mandrioli, Dino ; Rizzi, Alessandro Maria
Author_Institution :
Univ. of Luxembourg, Luxembourg, Luxembourg
Abstract :
We describe a novel approach to program verification and its application to verification of C programs, where properties are expressed in matching logic. The general approach is syntax-directed: semantic rules, expressed according to Knuth´s attribute grammars, specify how verification conditions can be computed. Evaluation is performed by interplaying attribute computation and propagation through the syntax tree with invocation of a solver of logic formulae. The benefit of a general syntax-driven approach is that it provides a reusable reference scheme for implementing verifiers for different languages. We show that the instantiation of a general approach to a specific language does not penalize the efficiency of the resulting verifier. This is done by comparing our C verifier for matching logic with an existing tool for the same programming language and logic. A further key advantage of the syntax-directed approach is that it can be the starting point for an incremental verifier -- which is our long-term research target.
Keywords :
C language; formal logic; grammars; program verification; trees (mathematics); C programs; C verifier; Knuth attribute grammars; attribute computation; attribute propagation; incremental verifier; logic formulae; matching logic properties; programming language; reusable reference scheme; semantic rules; syntax tree; syntax-directed approach; syntax-driven program verification; Computer languages; Contracts; Delays; Grammar; Pattern matching; Semantics; Syntactics; Matching logic; reachability checking; software verification; syntax-directed;
Conference_Titel :
Formal Methods in Software Engineering (FormaliSE), 2015 IEEE/ACM 3rd FME Workshop on
Conference_Location :
Florence
DOI :
10.1109/FormaliSE.2015.18