JuanmaCopia / lissa

LISSA: An efficient symbolic execution approach for programs manipulating complex heap-allocated data structures.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

LISSA: Lazy Initialization with Specialized Solver Aid

This repository is deprecated! an updated version can be found in: https://github.com/JuanmaCopia/spf-pli

LISSA is an efficient symbolic execution approach for programs that manipulate complex heap-allocated data structures with rich structural constraints. This repository includes the LISSA implementation and the artifact for the paper "LISSA: Lazy Initialization with Specialized Solver Aid", accepted for publication in ASE 2022.

LISSA's implementation is based on the symbolic execution engine of the Symbolic (Java) PathFinder tool [0]. LISSA employs a novel solver, called SymSolve, to detect spurious partially symbolic structures generated during lazy initialization, and prune their corresponding spurious paths. SymSolve's implementation is based on the Korat bounded exhaustive test generation tool [1].

To favor reproducibility of the experiments and comparison with existing and future approaches, we release all the implementations as open source. The artifact and its source code can be obtained by cloning the following GitHub repository: https://github.com/JuanmaCopia/lissa.

For instructions on installing and executing LISSA, and for reproducing the experiments in the paper, please refer to INSTALL.md.

References

[0] https://github.com/SymbolicPathFinder/jpf-symbc

[1] http://korat.sourceforge.net

About

LISSA: An efficient symbolic execution approach for programs manipulating complex heap-allocated data structures.

License:Apache License 2.0


Languages

Language:Java 99.1%Language:Shell 0.3%Language:TeX 0.2%Language:CSS 0.2%Language:Python 0.1%Language:HTML 0.1%Language:Ruby 0.0%Language:Dockerfile 0.0%Language:Batchfile 0.0%Language:C 0.0%