Symbolic execution and program testing
- 1 July 1976
- journal article
- research article
- Published by Association for Computing Machinery (ACM) in Communications of the ACM
- Vol. 19 (7) , 385-394
- https://doi.org/10.1145/360248.360252
Abstract
This paper describes the symbolic execution of programs. Instead of supplying the normal inputs to a program (e.g. numbers) one supplies symbols representing arbitrary values. The execution proceeds as in a normal execution except that values may be symbolic formulas over the input symbols. The difficult, yet interesting issues arise during the symbolic execution of conditional branch type statements. A particular system called EFFIGY which provides symbolic execution for program testing and debugging is also described. It interpretively executes programs written in a simple PL/I style programming language. It includes many standard debugging features, the ability to manage and to prove things about symbolic expressions, a simple program testing manager, and a program verifier. A brief discussion of the relationship between symbolic execution and program proving is also included.This publication has 6 references indexed in Scilit:
- A new approach to program testingPublished by Association for Computing Machinery (ACM) ,1975
- SELECT---a formal system for testing and debugging programs by symbolic executionPublished by Association for Computing Machinery (ACM) ,1975
- An interpretation-oriented theorem prover over integersJournal of Computer and System Sciences, 1972
- An Assessment of Techniques for Proving Program CorrectnessACM Computing Surveys, 1972
- Proving Programs to be CorrectIEEE Transactions on Computers, 1971
- Assigning meanings to programsPublished by American Mathematical Society (AMS) ,1967