Research on interactive program manipulation : final report
This Final Report of research conducted under the support of NSF grant MCS75 13875 A01 summarizes results and accomplishments of our research in interactive program manipulation.
Briefly, we developed the Irvine Program Transformation Catalogue which organizes, names, and classifies over 10 groups of program transformations. We discovered how to get a computer to chain together large numbers of simple program transformations with minimal interactive guidance, minimal wasted search, and high efficiency, resulting in dramatic net program improvements. We validated our chaining concepts by building the SPECIALIST system, reported on in the doctoral dissertation of Dennis F. Kibler. We discovered how to verify that transformations in our system preserve program equivalence. Finally, we developed stepwise refinement transformation techniques for mapping abstract program forms into concrete pogram forms involving the use of exchanges between statements in languages of assertion and relation (i.e. logic) and languages of imperative intent. The refinement transformations are mediated by drawing on knowledge and exchange laws from "micro-worlds", such as the "set", "array", and "sequence" microworlds.