A Peer Architecture for Lightweight Symbolic Execution

A. Bruni, Tim Disney, Cormac Flanagan · 2011

We present a novel and lightweight library-based approach to symbolic execution based on a peer architecture. Rather than defining a new interpreter or compiler to build a symbolic execution engine for a particular language, we simply use the existing features of the language so that the engine works as a peer of the target program. Our approach is based on the insight that languages that provide the ability to dynamically dispatch primitive operations (e.g. many scripting languages such as Python) allow us to track symbolic values at runtime. We present an architecture and implementation of our peer architecture in Python and discuss results of running our symbolic execution engine on several well known algorithms and data structures.

Read the paper · More papers on PaperTik