Liu, Yanhong A.Teitelbaum, Tim2007-04-232007-04-231995-03http://techreports.library.cornell.edu:8081/Dienst/UI/1.0/Display/cul.cs/TR95-1499https://hdl.handle.net/1813/7157Given a program $f$ and an input change $\oplus$, we wish to obtain an incremental program that computes $f(x\oplus y)$ efficiently by making use of the value of $f(x)$, the intermediate results computed in computing $f(x)$, and auxiliary information about $x$ that can be inexpensively maintained. Obtaining such incremental programs is an essential part of the transformational-programming approach to software development and enhancement. This paper presents a systematic approach that discovers a general class of useful auxiliary information, combines it with useful intermediate results, and obtains an efficient incremental program that uses and maintains these intermediate results and auxiliary information. We give a number of examples from list processing, VLSI circuit design, image processing, {\it etc}.265044 bytes238243 bytesapplication/pdfapplication/postscripten-UScomputer sciencetechnical reportIncremental Computation for Transformational Software Developmenttechnical report