Abstract
Schema-based logic program transformation has proven to be an effective technique for the optimisation of programs. This paper results from the research that began by investigating the suggestions in [11] to construct a more general database of transformation schemas for optimising logic programs at the declarative level. The proposed transformation schemas fully automate accumulator introduction (also known as descending computational generalisation), tupling generalisation (a special case of structural generalisation), and duality laws (which are extensions to relational programming of the first duality law of the fold operators in functional programming). The schemas are proven correct. A prototype schema-based transformation system is evaluated.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
T. Batu. Schema-Guided Transformations of Logic Algorithms. Senior Project Report, Bilkent University, Department of Computer Science, 1996.
R.S. Bird. The promotion and accumulation strategies in transformational programming. ACM Transactions on Programming Languages and Systems 6(4):487–504, 1984.
R.S. Bird and P. Wadler. Introduction to Functional Programming. Prentice Hall, 1988.
H. Büyükyıldız and P. Flener. Correctness Proofs of Transformation Schemas. Technical Report BU-CEIS-9713. Bilkent University, Department of Computer Science, 1997.
H. Büyükyıldız. Schema-based Logic Program Transformation. M.Sc. Thesis, Technical Report BU-CEIS-9714. Bilkent University, Department of Computer Science, 1997.
E. Chasseur and Y. Deville. Logic program schemas, semi-unification, and constraints. In: N.E. Fuchs (ed), Proc. of LOPSTR’97 (this volume).
A. Cortesi, B. Le Charlier, and S. Rossi. Specification-based automatic verification of Prolog programs. In: J. Gallagher (ed), Proc. of LOPSTR’96, pp. 38–57. LNCS 1207. Springer-Verlag, 1997.
S.K. Debray and N.W. Lin. Cost analysis of logic programs. ACM TOPLAS 15(5):826–875, 1993.
Y. Deville. Logic Programming: Systematic Program Development. Addison-Wesley, 1990.
Y. Deville and J. Burnay. Generalization and program schemata: A step towards computer-aided construction of logic programs. In: E.L. Lusk and R.A. Overbeek (eds), Proc. of NACLP’89, pp. 409–425. The MIT Press, 1989.
P. Flener and Y. Deville. Logic program transformation through generalization schemata. In: M. Proietti (ed), Proc. of LOPSTR’95, pp. 171–173. LNCS 1048. Springer-Verlag, 1996.
P. Flener, K.-K. Lau, and M. Ornaghi. On correct program schemas. In: N.E. Fuchs (ed), Proc. of LOPSTR’97 (this volume).
N.E. Fuchs and M.P.J. Fromherz. Schema-based transformation of logic programs. In: T. Clement and K.-K. Lau (eds), Proc. of LOPSTR’91, pp. 111–125. Springer Verlag, 1992.
T.S. Gegg-Harrison. Representing logic program schemata in λProlog. In: L. Sterling (ed), Proc. of ICLP’95, pp. 467–481. The MIT Press, 1995.
T.S. Gegg-Harrison. Extensible logic program schemata. In: J. Gallagher (ed), Proc. of LOPSTR’96, pp. 256–274. LNCS 1207. Springer-Verlag, 1997.
A. Hamfelt and J. Fischer Nilsson. Declarative logic programming with primitive recursion relations on lists. In: L. Sterling (ed), Proc of JICSLP’96. The MIT Press.
A. Pettorossi and M. Proietti. Transformation of logic programs: foundations and techniques. Journal of Logic Programming 19(20):261–320, 1994.
J. Richardson and N.E. Fuchs. Development of correct transformation schemata for Prolog programs. In: N.E. Fuchs (ed), Proc. of LOPSTR’97 (this volume).
D. Sahlin. An Automatic Partial Evaluator of Full Prolog. Ph.D. Thesis, Swedish Institute of Computer Science, 1991.
D.R. Smith. Top-down synthesis of divide-and-conquer algorithms. Artificial Intelligence 27(1):43–96, 1985.
D.R. Smith. KIDS: A semiautomatic program development system. IEEE Transactions on Software Engineering 16(9):1024–1043, 1990.
Z. Somogyi, F. Henderson, and T. Conway. Mercury: An efficient purely declarative logic programming language. In: Proc. of the Australian Computer Science Conference, pp. 499–512, 1995.
L.S. Sterling and M. Kirschenbaum. Applying techniques to skeletons. In: J.-M. Jacquet (ed), Constructing Logic Programs, pp. 127–140, John Wiley, 1993.
M.E. Stickel. A Prolog technology theorem prover: A new exposition and implementation in Prolog. Theoretical Computer Science 104:109–128, 1992.
W.W. Vasconcelos and N.E. Fuchs. An opportunistic approach for logic program analysis and optimisation using enhanced schema-based transformations. In: M. Proietti (ed), Proc. of LOPSTR’95, pp. 174–188. LNCS 1048. Springer-Verlag, 1996.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1998 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Büyükyıldız, H., Flener, P. (1998). Generalised Logic Program Transformation Schemas. In: Fuchs, N.E. (eds) Logic Program Synthesis and Transformation. LOPSTR 1997. Lecture Notes in Computer Science, vol 1463. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-49674-2_3
Download citation
DOI: https://doi.org/10.1007/3-540-49674-2_3
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-65074-4
Online ISBN: 978-3-540-49674-8
eBook Packages: Springer Book Archive