An Introduction to Proving the Correctness of Programs
ACM Computing Surveys (CSUR)
The synthesis of loop predicates
Communications of the ACM
Commutativity analysis: a new analysis technique for parallelizing compilers
ACM Transactions on Programming Languages and Systems (TOPLAS)
Programmers use slices when debugging
Communications of the ACM
Managing multi-version programs with an editor
IBM Journal of Research and Development
Inference from models of software systems
Journal of Systems and Software
Hi-index | 0.03 |
By "program reduction" we mean making a program simpler according to some measure. For the narrow purposes here, that measure is the number of statements in the program. We are interested in the case when an existing program, assumed to be correct, is too general, too big, for a given situations. A simpler program, consistent with the original, but operating over a smaller domain is desired. We found that a program verifier, based on the symbolic execution methodology, with some minor enhancements could handle this program reduction task. The technique is interesting because it is such a simple, but powerful, application of such a program prover.