A Survey of Symbolic Execution Techniques
Roberto Baldoni, Emilio Coppa, Daniele Cono D’elia, Camil Demetrescu, Irene Finocchi
- Read: 20 Apr 2025
- Published: 23 May 2018
ACM Computing Surveys (CSUR), Volume 51, Issue 3 Article No.: 50, Pages 1 - 39
https://doi.org/10.1145/3182657
After skimming the survey A Survey of Symbolic Execution Techniques, I summarized the topics related to symbolic execution as the diagram below.
In the survey, some further directions for symbolic execution were listed. Below is a summarized version.
- Separation Logic: SL extends Hoare logic to facilitate reasoning about programs that maniputlate pointer data structures, and allows expressing compplex invariants of heap configurations in a succinct manner.
- Invariants: Leveraging invariants of loops can be beneficial to symbolic executors, there was no relavent work discoverd by the authors of the survey.
- Function Summaries: Calysto static checker is an example of using the call graph to construct a symbolic representation of effects on each function.
- Program Analysis and Optimization: The developments in programming languages realm could be beneficial to symbolic execution. Some examples are loop coalescing, loop unfolding, program synthesis.
- Symbolic Computation: Only Z3 and SMT-RAT can reason about non-linear real and integer arithmetic. The developments in symbolic computation can be used to help SMT solvers. SC^2 is an interesting project aiming to bridge the gap between symbolic computation and satisfiability checking.
Written on