Social processes and proofs of theorems and programs
Communications of the ACM
Symbolic execution and program testing
Communications of the ACM
Challenge problem 1 without search
ACM SIGART Bulletin
Hi-index | 0.00 |
In this paper we present a symbolic evaluator of LISP functions. It can handle data-altering functions of the RPLACA type, i. e. functions that change one datastructure by replacing parts of it by other structures that will themselves not be changed further, at least not permanently. The state description language uses first-order predicate calculus. It is argued that symbolic evaluation in terms of this language, although theoretically adequate, is not feasible in general, since it may require extremely complicated specifications for real-life functions with side effects. Examples are given of the specifications needed to verify several versions of SUBSTAD, a non-copying SUBST.