Graph explorer

Compact Symbolic Execution

We present a generalisation of King's symbolic execution technique called compact symbolic execution. It proceeds in two steps. First, we analyse cyclic paths in the control flow graph of a given program, independently from the rest of the program. Our goal is to compute a so called template for each such a cyclic path. A template is a declarative parametric description of all possible program states, which may leave the analysed cyclic path after any number of iterations along it. In the second step, we execute the program symbolically with the templates in hand. The result is a compact symbolic execution tree. A compact tree always carry the same information in all its leaves as the corresponding classic symbolic execution tree. Nevertheless, a compact tree is typically substantially smaller than the corresponding classic tree. There are even programs for which compact symbolic execution trees are finite while classic symbolic execution trees are infinite.

5 nodes4 linksoverview previewCompact Symbolic Execution
5 nodes4 links
Compact Symbolic Execution5 visible / 5 total nodes / 7 links
Co-authorshipCo-authorshipCo-authorshipAuthorshipAuthorshipAuthorshipTopic signalWCompact Symbolic Executionpreprint / 2013AJiří SlabýResearcherAJan StrejčekResearcherAMarek TrtíkResearcherTProgramming Languages1239 works
PaperSignal 104 links

Compact Symbolic Execution

preprint / 2013

Open