Program Modification and Debugging
Nachum Dershowitz · Birkhäuser Boston eBooks · 1983
Distinct species, in general, will have some aspects in common and some distinguishing differences; some parts similar in function but different in form, some different in function but similar in form. Analogously, distinct programs may use similar techniques for disparate tasks, or achieve the same goal in divergent ways. In this chapter, we look into means of modifying one program to accomplish a different goal in a similar manner. An analogy between the specification of the given program and that of the desired one is used as the basis for transforming the existing program to meet the new specification. We also consider debugging in this chapter. Debugging is a special case of modification in which a program is modified to achieve the correct results. Although new and important modifications may not arise from reversion and analogous variation, such modifications will add to the beautiful and harmonious diversity of nature. Modifications in hard parts and in external parts sometimes affect softer and internal parts. —Charles Darwin (The origin of species) ‘Similarity’ is not a thing offered on a plate (or hidden in a cupboard); it is a relation established in the mind by a process of selective emphasis on those features which overlap in a certain respect—along one dimensional gradient—and ignoring other features. These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.