A generic framework for symbolic execution: A coinductive approach

We propose a language-independent symbolic execution framework. The approach is parameterised by a language definition, which consists of a signature for the syntax and execution infrastructure of the language, a model interpreting the signature, and rewrite rules for the language's operational...

Celý popis

Uložené v:
Podrobná bibliografia
Vydané v:Journal of symbolic computation Ročník 80; s. 125 - 163
Hlavní autori: Lucanu, Dorel, Rusu, Vlad, Arusoaie, Andrei
Médium: Journal Article
Jazyk:English
Vydavateľské údaje: Elsevier Ltd 01.05.2017
Elsevier
Predmet:
ISSN:0747-7171, 1095-855X
On-line prístup:Získať plný text
Tagy: Pridať tag
Žiadne tagy, Buďte prvý, kto otaguje tento záznam!
Popis
Shrnutí:We propose a language-independent symbolic execution framework. The approach is parameterised by a language definition, which consists of a signature for the syntax and execution infrastructure of the language, a model interpreting the signature, and rewrite rules for the language's operational semantics. Then, symbolic execution amounts to computing symbolic paths using a derivative operation. We prove that the symbolic execution thus defined has the properties naturally expected from it, meaning that the feasible symbolic executions of a program and the concrete executions of the same program mutually simulate each other. We also show how a coinduction-based extension of symbolic execution can be used for the deductive verification of programs. We show how the proposed symbolic-execution approach, and the coinductive verification technique based on it, can be seamlessly implemented in language definition frameworks based on rewriting such as the K framework. A prototype implementation of our approach has been developed in K. We illustrate it on the symbolic analysis and deductive verification of nontrivial programs.
ISSN:0747-7171
1095-855X
DOI:10.1016/j.jsc.2016.07.012