The University of Edinburgh -
Division of Informatics
Forrest Hill & 80 South Bridge

Research Paper #718

Title:An Environment for Building Prolog Programs Based on Knowledge About Their Construction
Authors:Vargas-Vera,M; Robertson,DS
Date:Oct 1994
Presented:Accepted for the Tenth Logic Programming Workshop (WLP-94)
Abstract:Program combination can be used to promote the reuse of software by allowing complex programs to be built by repeated combination of other programs. Previous attempts at automatic systems which assist programmers in the task of combining programs have generally required lots of interaction from a user, who also typically needs a good understanding of the particular program transformation process being applied. A system for transforming programs expressed as recursion equations is given in [BD77], but its use requires intervention of a human with a good understanding of program transformation methods. In procedural languages, there are ways [HPR88] to merge programs derived from an initial generic template, however, this approach is restricted to a limited class of programs. In [TS83, TS84], an unfold/fold based transformation system was given, but requires user intervention and is restricted to programs with the same flow of control. In [LS87, SL88] methods were given for combining Prolog programs with the same basic flow of control (meta-interpreters) but these also require user intervention. The method of [FF91] employs basic schemata (supplied by an expert) to combine list-processing programs. The method is very efficient, however it can present the user with a difficult choice between possible output schemata. The method in [PP92] combines logic programs with the same flow of control using basic fold/unfold transformations, but relies on user-guidance and its efficiency depends on the decisions made by the user. Given these problems of over-reliance on the user, and lack of flexibility, we started out with three basic ideas as to how the situation could be improved.

[Search These Pages] [DAI Home Page] [Comment]