The evolution of programs: A system for automatic program modification

Nachum Dershowitz, Zohar Manna

Research output: Contribution to journalConference articlepeer-review


A programmer spends more time modifying already existing programs than constructing original ones. 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 piinciples to achieve a different goal. For example, a piogram that uses the binary search paradigm to divide two numbers may be modified to calculate the square-root of a number in a similar manner. Program debugging is considered as a special case of modification- if a piogram computes wrong results, it must be modified to achieve the intended lesults The application of abstiact piogiam schemata to concrete problems is also viewed from the peispeclive of modification techniques. We. have embedded this approach in a running implementation; our methods ate illustrated with several examples that have been performed by it.

Original languageEnglish
Pages (from-to)144-154
Number of pages11
JournalConference Record of the Annual ACM Symposium on Principles of Programming Languages
StatePublished - 1 Jan 1977
Externally publishedYes
Event4th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, POPL 1977 - Los Angeles, United States
Duration: 17 Jan 197719 Jan 1977


Dive into the research topics of 'The evolution of programs: A system for automatic program modification'. Together they form a unique fingerprint.

Cite this