Using abstraction to automate program improvement by transformation

  • Authors:
  • Ian Green

  • Affiliations:
  • Department of Engineering, University of Cambridge, Cambridge, England

  • Venue:
  • AAAI'91 Proceedings of the ninth National conference on Artificial intelligence - Volume 1
  • Year:
  • 1991

Quantified Score

Hi-index 0.00

Visualization

Abstract

The problem of automatically improving functional programs using Darlington's unfold/fold technique is addressed. Transformation tactics are formalized as methods consisting of pre- and postconditions, expressed within a sorted meta-logic. Predicates and functions of this logic induce an abstract program property space within which conventional monotonic planning techniques are used to automatically compose methods (hence tactics) into a program improving strategy. This meta-program reasoning casts the undirected search of the transformation space as a goal-directed search of the more abstract space. Tactics are only weakly specified by methods. This flexibility is required if they are to be applicable to the class of generalized programs that satisfy the pre-conditions of their methods. This is achieved by allowing the tactics to generate degenerate scripts that may require refinement. Examples of tactics and methods are given, with illustrations of their use in automatic program improvement.