Interleaving Symbolic Execution and Partial Evaluation
نویسندگان
چکیده
Partial evaluation is a program specialization technique that allows to optimize programs for which partial input is known. We show that partial evaluation can be used with advantage to speed up as well symbolic execution of programs. Interestingly, the input required for partial evaluation comes from symbolic execution itself which makes it natural to interleave partial evaluation and symbolic execution steps in a software verification setup.
منابع مشابه
Interleaving Execution and Planning via Symbolic Model Checking
Interleaving planning and execution is the practical alternative to the problem of planning off-line with large state spaces. While planning via symbolic model checking has been extensively studied for off-line planning, no framework for interleaving it with execution has been ever devised. In this paper, we extend planning via symbolic model checking with the ability of interleaving planning a...
متن کامل1 Partial Execution - An Easy Partial Evaluation
Partial evaluation, also known as automatic specialization, is a particular collection of techniques for improving the performance of an application. With clear benefits, but unclear implementation up until now, partial evaluation is little used in current computing practice. This soon will change. Presented here is partial execution, an alternative to symbolic evaluation the technique driving ...
متن کاملSymbolic Model Checking for Asynchronous Boolean Programs
Software model checking problems generally contain two different types of non-determinism: 1) non-deterministically chosen values; 2) the choice of interleaving among threads. Most modern software model checkers can handle only one source of non-determinism efficiently, but not both. This paper describes a SAT-based model checker for asynchronous Boolean programs that handles both sources effec...
متن کاملContessa: Concurrency Testing Augmented with Symbolic Analysis
Testing of multi-threaded programs poses enormous challenges. To improve the coverage of testing, we present a framework named CONTESSA that augments conventional testing (concrete execution) with symbolic analysis in a scalable and efficient manner to explore both thread interleaving and input data space. It is built on partial-order reduction techniques that generate verification conditions w...
متن کاملCompositional Symbolic Execution through Program Specialization
Scalability is a major challenge in symbolic execution. The large number of paths that need to be explored and the large size of the constraints that must be carried often compromise the effectiveness of symbolic execution for software testing in practice. Compositional symbolic execution aims to alleviate these scalability issues by executing the methods of a program separately, stowing their ...
متن کامل