Skip to main content

Generalised Logic Program Transformation Schemas

  • Conference paper
  • First Online:
Logic Program Synthesis and Transformation (LOPSTR 1997)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1463))

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Similar content being viewed by others

References

  1. T. Batu. Schema-Guided Transformations of Logic Algorithms. Senior Project Report, Bilkent University, Department of Computer Science, 1996.

    Google Scholar 

  2. R.S. Bird. The promotion and accumulation strategies in transformational programming. ACM Transactions on Programming Languages and Systems 6(4):487–504, 1984.

    Article  MATH  MathSciNet  Google Scholar 

  3. R.S. Bird and P. Wadler. Introduction to Functional Programming. Prentice Hall, 1988.

    Google Scholar 

  4. 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.

    Google Scholar 

  5. 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.

    Google Scholar 

  6. E. Chasseur and Y. Deville. Logic program schemas, semi-unification, and constraints. In: N.E. Fuchs (ed), Proc. of LOPSTR’97 (this volume).

    Google Scholar 

  7. 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.

    Google Scholar 

  8. S.K. Debray and N.W. Lin. Cost analysis of logic programs. ACM TOPLAS 15(5):826–875, 1993.

    Article  Google Scholar 

  9. Y. Deville. Logic Programming: Systematic Program Development. Addison-Wesley, 1990.

    Google Scholar 

  10. 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.

    Google Scholar 

  11. 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.

    Google Scholar 

  12. P. Flener, K.-K. Lau, and M. Ornaghi. On correct program schemas. In: N.E. Fuchs (ed), Proc. of LOPSTR’97 (this volume).

    Google Scholar 

  13. 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.

    Google Scholar 

  14. 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.

    Google Scholar 

  15. T.S. Gegg-Harrison. Extensible logic program schemata. In: J. Gallagher (ed), Proc. of LOPSTR’96, pp. 256–274. LNCS 1207. Springer-Verlag, 1997.

    Google Scholar 

  16. 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.

    Google Scholar 

  17. A. Pettorossi and M. Proietti. Transformation of logic programs: foundations and techniques. Journal of Logic Programming 19(20):261–320, 1994.

    Article  MathSciNet  Google Scholar 

  18. 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).

    Google Scholar 

  19. D. Sahlin. An Automatic Partial Evaluator of Full Prolog. Ph.D. Thesis, Swedish Institute of Computer Science, 1991.

    Google Scholar 

  20. D.R. Smith. Top-down synthesis of divide-and-conquer algorithms. Artificial Intelligence 27(1):43–96, 1985.

    Article  MATH  MathSciNet  Google Scholar 

  21. D.R. Smith. KIDS: A semiautomatic program development system. IEEE Transactions on Software Engineering 16(9):1024–1043, 1990.

    Article  Google Scholar 

  22. 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.

    Google Scholar 

  23. L.S. Sterling and M. Kirschenbaum. Applying techniques to skeletons. In: J.-M. Jacquet (ed), Constructing Logic Programs, pp. 127–140, John Wiley, 1993.

    Google Scholar 

  24. M.E. Stickel. A Prolog technology theorem prover: A new exposition and implementation in Prolog. Theoretical Computer Science 104:109–128, 1992.

    Article  MATH  MathSciNet  Google Scholar 

  25. 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.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics