Top-down synthesis of divide-and-conquer algorithms
Artificial Intelligence
Research on Knowledge-Based Software Environments at Kestrel Institute
IEEE Transactions on Software Engineering - Special issue on artificial intelligence and software engineering
Abstraction in planning
A Transformation System for Developing Recursive Programs
Journal of the ACM (JACM)
A System for Assisting Program Transformation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Transformational Implementation: An Example
IEEE Transactions on Software Engineering
Hi-index | 0.00 |
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.