Symbolic execution formally explained

In this paper, we provide a formal explanation of symbolic execution in terms of a symbolic transition system and prove its correctness and completeness with respect to an operational semantics which models the execution on concrete values.We first introduce a formalmodel for a basic programming lan...

Full description

Saved in:
Bibliographic Details
Published inFormal aspects of computing Vol. 33; no. 4-5; pp. 617 - 636
Main Authors de Boer, Frank S., Bonsangue, Marcello
Format Journal Article
LanguageEnglish
Published London Springer London 01.08.2021
Association for Computing Machinery
Subjects
Online AccessGet full text

Cover

Loading…
More Information
Summary:In this paper, we provide a formal explanation of symbolic execution in terms of a symbolic transition system and prove its correctness and completeness with respect to an operational semantics which models the execution on concrete values.We first introduce a formalmodel for a basic programming languagewith a statically fixed number of programming variables. This model is extended to a programming language with recursive procedures which are called by a call-by-value parameter mechanism. Finally, we present a more general formal framework for proving the soundness and completeness of the symbolic execution of a basic object-oriented language which features dynamically allocated variables.
ISSN:0934-5043
1433-299X
DOI:10.1007/s00165-020-00527-y