Abstract
We study the problem of automating some development techniques for logic programs. These techniques are based on the application of semantics preserving transformation rules which are driven by strategies. We propose an abstract strategy which is parametrized by three mathematical functions called definition-folding, selection, and replacement.
Once these three functions are supplied, our abstract strategy becomes a concrete one which can be used during program development for driving the application of the Definition, Folding, Unfolding, and Goal Replacement Rules.
We show that the definition-folding function can be determined in an automatic way from the description of the syntactic properties of the program we wish to derive.
We also show through some examples that many program derivation strategies described in the literature, such as the methodology for eliminating unnecessary variables, the tupling strategy, the partial deduction techniques, and the promotion strategy, can be viewed as particular instances of our abstract strategy.
Get full access to this article
View all access options for this article.
