Formal Methods in Software Engineering

A Generic Framework for Symbolic Execution

Year2013
TypeConference
StatusProceedings
AuthorsAndrei Arusoaie, Dorel Lucanu, Vlad Rusu

Links

Abstract

We propose a language-independent symbolic execution framework for languages endowed with a formal operational semantics based on term rewriting. Starting from a given definition of a language, a new language definition is automatically generated, which has the same syntax as the original one but whose semantics extends data domains with symbolic values and adapts semantical rules to deal with these values.
Then, the symbolic execution of concrete programs is the execution of programs with the new symbolic semantics, on symbolic input data.
We prove that the symbolic execution thus defined has the properties naturally expected from it. A prototype implementation of our approach was developed in the K Framework. We demonstrate the genericity of our tool by instantiating it on several languages, and show how it can be used for the symbolic execution and model checking of several programs.

BibTeX

@inproceedings{arusoaieLR2013SLE, author = {Andrei Arusoaie and Dorel Lucanu and Vlad Rusu}, title = {A Generic Framework for Symbolic Execution}, booktitle = {6th International Conference on Software Language Engineering}, editor = {Martin Erwig and Richard F. Paige and Eric Van Wyk}, volume = {8225}, series = {Lecture Notes in Computer Science}, pages = {281-301}, year = {2013}, month = {October}, url = {http://planet-sl.org/sle2013/[SLE2013]} }