Report Number: CS-TR-76-586
Institution: Stanford University, Department of Computer Science
Title: The evolution of programs: a system for automatic program
modification
Author: Dershowitz, Nachum
Author: Manna, Z ohar
Date: December 1976
Abstract: An attempt is made to formulate techniques of program
modification, whereby a program that achieves one result can
be transformed into a new program that uses the same
principles to achieve a different goal. For example, a
program that uses the binary search paradigm to calculate the
square-root of a number may be modified to divide two numbers
in a similar manner, or vice versa.
Program debugging is considered as a special case of
modification: if a program computes wrong results, it must be
modified to achieve the intended results. The application of
abstract program schemata to concrete problems is also viewed
from the perspective of modification techniques.
We have embedded this approach in a running implementation;
our methods are illustrated with several examples that have
been performed by it.
http://i.stanford.edu/pub/cstr/reports/cs/tr/76/586/CS-TR-76-586.pdf