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