Logic program synthesis and transformation are topics of central importance to the software industry. The demand for software can not be met by the current supply, in terms of volume, complexity, or reliability. The most promising solution seems to be the increased automation of software production: programmer productivity would improve, and correctness could be ensured by the application of mathematical methods. Because of their mathematical foundations, logic programs lend themselves particularly well to machine-assisted development techniques, and therefore to automation. This volume contains the proceedings of the second International Workshop on Logic Program Synthesis and Transformation (LOPSTR 92), held at the University of Manchester, 2-3 July 1992. The LOPSTR workshops are the only international meetings devoted to these two important areas. A variety of new techniques were described at the workshop, all of which promise to revolutionize the software industry once they become standard practise. These include techniques for the transformation of an inefficient program into an equivalent, efficient one, and the synthesis of a program from a formal specification of its required behaviour. Among the topics covered in this volume are: optimal transformation of logic programs; logic program synthesis via proof planning; deductive synthesis of programs for query answering; efficient compilation of lazy narrowing into Prolog; synthesis of narrowing programs; Logimix: a self-applicable partial evaluator for Prolog; proof nets; automatic termination analysis. Logic Program Synthesis and Transformation describes the latest advances in machine-assisted development of logic programs. It will provide essential reading for researchers and postgraduate students concerned with these two important areas.
Logic Program Synthesis via Proof Planning.- Deductive Synthesis of Programs for Query Answering.- Synthesis of Narrowing Programs.- A Unifying View of Structural Induction and Computation Induction for Logic Programs.- Proof Nets.- The LOPS Approach: A Transformational Point of View (Extended Abstract).- Best-first Strategies for Incremental Transformations of Logic Programs.- Deriving Transformations of Logic Programs Using Abstract Interpretation.- A Rationalisation of the ATMS in Terms of Partial Evaluation.- Intensional Query Answering: An Application of Partial Evaluation.- Deletion of Redundant Unary Type Predicates from Logic Programs.- Automatic Termination Analysis.- Application of Unfolding in Prolog Programming.- An Unfold Rule for Full Prolog.- Logimix: A Self-Applicable Partial Evaluator for Prolog.- Towards Optimization of Full Prolog Programs Guided by Abstract Interpretation.- On the Transformation of a prolog Program to a More Efficient Binary Program.- Efficient Compilation of Lazy Narrowing into Prolog.- Author Index.