Skip to main content

Advanced Logic Program Specialisation

  • Conference paper
Partial Evaluation (DIKU 1998)

Part of the book series: Lecture Notes in Computer Science ((LNAI,volume 1706))

Included in the following conference series:

Abstract

In first part of this course [28] we have laid the theoretical foundations for logic program specialisation, notably introducing the technique of partial deduction along with some basic techniques to automatically control it. In this part of the course we first present in Section 2 an advanced way of controlling polyvariance based upon characteristic trees. We then show in Section 3 how partial deduction can be extended into conjunctive partial deduction, incorporating much of the power of unfold/fold program transformation techniques, such as tupling and deforestation, while keeping the automatic control of partial deduction. Finally, in Section 4 we elaborate on combining abstract interpretation with conjunctive partial deduction, showing how together they are more powerful than either method alone.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

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.

References

  1. K. Benkerimi and P. M. Hill. Supporting transformations for the partial evaluation of logic programs. Journal of Logic and Computation, 3(5):469–486, October 1993.

    Article  MathSciNet  MATH  Google Scholar 

  2. A. Bossi and N. Cocco. Replacement can Preserve Termination. In J. Gallagher, editor, Logic Program Synthesis and Transformation. Proceedings of LOPSTR’96, LNCS 1207, pages 104–129, Stockholm, Sweden, August 1996. Springer-Verlag.

    Chapter  Google Scholar 

  3. A. Bossi, N. Cocco and S. Etalle. Transformation of Left Terminating Programs: The Reordering Problem. In M. Proietti, editor, Logic Program Synthesis and Transformation. Proceedings of LOPSTR’95, LNCS 1048, pages 33–45, Utrecht, Netherlands, September 1995. Springer-Verlag.

    Chapter  Google Scholar 

  4. M. Bruynooghe. A practical framework for the abstract interpretation of logic programs. The Journal of Logic Programming, 10:91–124, 1991.

    Article  MathSciNet  MATH  Google Scholar 

  5. W.-N. Chin. Towards an automated tupling strategy. In Proceedings of PEPM’93, the ACM Sigplan Symposium on Partial Evaluation and Semantics-Based Program Manipulation, pages 119–132. ACM Press, 1993.

    Google Scholar 

  6. W.-N. Chin and S.-C. Khoo. Tupling functions with multiple recursion parameters. In Proceedings of the Third International Workshop on Static Analysis, number 724 in LNCS 724, pages 124–140, Padova, Italy, Sept. 1993. Springer-Verlag.

    Google Scholar 

  7. C. Consel and S. C. Khoo. Parameterized partial evaluation. ACM Transactions on Programming Languages and Systems, 15(3):463–493, 1993.

    Article  Google Scholar 

  8. P. Cousot and R. Cousot. Abstract interpretation and application to logic programs. The Journal of Logic Programming, 13(2 & 3):103–179, 1992.

    Article  MathSciNet  MATH  Google Scholar 

  9. D. De Schreye, R. Glück, J. Jørgensen, M. Leuschel, B. Martens, and M. H. Sørensen. Conjunctive partial deduction: Foundations, control, algorithms and experiments. The Journal of Logic Programming, 1999. To appear.

    Google Scholar 

  10. D. A. de Waal and J. Gallagher. Specialisation of a unification algorithm. In T. Clement and K.-K. Lau, editors, Logic Program Synthesis and Transformation. Proceedings of LOPSTR’91, pages 205–220, Manchester, UK, 1991.

    Google Scholar 

  11. D. A. de Waal and J. Gallagher. The applicability of logic program analysis and transformation to theorem proving. In A. Bundy, editor, Automated Deduction — CADE-12, pages 207–221. Springer-Verlag, 1994.

    Google Scholar 

  12. J. Gallagher. A system for specialising logic programs. Technical Report TR-91-32, University of Bristol, November 1991.

    Google Scholar 

  13. J. Gallagher and M. Bruynooghe. The derivation of an algorithm for program specialisation. New Generation Computing, 9(3 & 4):305–333, 1991.

    Article  MATH  Google Scholar 

  14. J. Gallagher and D. A. de Waal. Deletion of redundant unary type predicates from logic programs. In K.-K. Lau and T. Clement, editors, Logic Program Synthesis and Transformation. Proceedings of LOPSTR’92, pages 151–167, Manchester, UK, 1992.

    Google Scholar 

  15. J. Gallagher and D. A. de Waal. Fast and precise regular approximations of logic programs. In P. Van Hentenryck, editor, Proceedings of the Eleventh International Conference on Logic Programming, pages 599–613. The MIT Press, 1994.

    Google Scholar 

  16. R. Glück and J. Jørgensen. Generating transformers for deforestation and supercompilation. In B. Le Charlier, editor, Proceedings of SAS’94, LNCS 864, pages 432–448, Namur, Belgium, September 1994. Springer-Verlag.

    Google Scholar 

  17. R. Glück, J. Jørgensen, B. Martens, and M. H. Sørensen. Controlling conjunctive partial deduction of definite logic programs. In H. Kuchen and S. Swierstra, editors, Proceedings of the International Symposium on Programming Languages, Implementations, Logics and Programs (PLILP’96), LNCS 1140, pages 152–166, Aachen, Germany, September 1996. Springer-Verlag.

    Chapter  Google Scholar 

  18. R. Glück and M. H. Sørensen. Partial deduction and driving are equivalent. In M. Hermenegildo and J. Penjam, editors, Programming Language Implementation and Logic Programming. Proceedings, Proceedings of PLILP’94, LNCS 844, pages 165–181, Madrid, Spain, 1994. Springer-Verlag.

    Chapter  Google Scholar 

  19. R. Glück and M. H. Sørensen. A roadmap to supercompilation. In O. Danvy, R. Glück, and P. Thiemann, editors, Proceedings of the 1996 Dagstuhl Seminar on Partial Evaluation, LNCS 1110, pages 137–160, Schloß Dagstuhl, 1996. Springer-Verlag.

    Google Scholar 

  20. M. Hermenegildo, R. Warren, and S. K. Debray. Global flow analysis as a practical compilation tool. The Journal of Logic Programming, 13(4):349–366, 1992.

    Article  Google Scholar 

  21. J. Jaffar and M. J. Maher. Constraint logic programming: A survey. The Journal of Logic Programming, 19 & 20:503–581, 1994.

    Article  MathSciNet  MATH  Google Scholar 

  22. G. Janssens and M. Bruynooghe. Deriving descriptions of possible values of program variables by means of abstract interpretation. The Journal of Logic Programming, 13(2 & 3):205–258, 1992.

    Article  MathSciNet  MATH  Google Scholar 

  23. N. D. Jones. Combining abstract interpretation and partial evaluation. In P. Van Hentenryck, editor, Static Analysis, Proceedings of SAS’97, LNCS 1302, pages 396–405, Paris, 1997. Springer-Verlag.

    Chapter  Google Scholar 

  24. J. Jørgensen, M. Leuschel, and B. Martens. Conjunctive partial deduction in practice. In J. Gallagher, editor, Proceedings of the International Workshop on Logic Program Synthesis and Transformation (LOPSTR’96), LNCS 1207, pages 59–82, Stockholm, Sweden, August 1996. Springer-Verlag.

    Chapter  Google Scholar 

  25. M. Leuschel. Ecological partial deduction: Preserving characteristic trees without constraints. In M. Proietti, editor, Logic Program Synthesis and Transformation. Proceedings of LOPSTR’95, LNCS 1048, pages 1–16, Utrecht, The Netherlands, September 1995. Springer-Verlag.

    Google Scholar 

  26. M. Leuschel. The ecce partial deduction system and the dppd library of benchmarks. Obtainable via http://www.cs.kuleuven.ac.be/~dtai, 1996.

  27. M. Leuschel. Advanced Techniques for Logic Program Specialisation. PhD thesis, K.U. Leuven, May 1997. Accessible via http://www.cs.kuleuven.ac.be/~michael.

  28. M. Leuschel. Logic Program Specialisation. In J. Hatcliff, T. Mogensen, and P. Thiemann, editors, DIKU 1998 International Summerschool on Partial Evaluation, LNCS 1706, pages 155–188, Copenhagen, Denmark, July 1998. Springer-Verlag. In this volume.

    Google Scholar 

  29. M. Leuschel. Program specialisation and abstract interpretation reconciled. In J. Jaffar, editor, Proceedings of the Joint International Conference and Symposium on Logic Programming JICSLP’98, pages 220–234, Manchester, UK, June 1998. MIT Press.

    Google Scholar 

  30. M. Leuschel and D. De Schreye. Logic program specialisation: How to be more specific. In H. Kuchen and S. Swierstra, editors, Proceedings of the International Symposium on Programming Languages, Implementations, Logics and Programs (PLILP’96), LNCS 1140, pages 137–151, Aachen, Germany, September 1996. Springer-Verlag.

    Chapter  Google Scholar 

  31. M. Leuschel and D. De Schreye. Constrained partial deduction and the preservation of characteristic trees. New Generation Computing, 16(3):283–342, 1998.

    Article  Google Scholar 

  32. M. Leuschel, D. De Schreye, and A. de Waal. A conceptual embedding of folding into partial deduction: Towards a maximal integration. In M. Maher, editor, Proceedings of the Joint International Conference and Symposium on Logic Programming JICSLP’96, pages 319–332, Bonn, Germany, September 1996. MIT Press.

    Google Scholar 

  33. M. Leuschel, B. Martens, and D. De Schreye. Controlling generalisation and polyvariance in partial deduction of normal logic programs. ACM Transactions on Programming Languages and Systems, 20(1):208–258, January 1998.

    Article  Google Scholar 

  34. M. Leuschel and M. H. Sørensen. Redundant argument filtering of logic programs. In J. Gallagher, editor, Proceedings of the International Workshop on Logic Program Synthesis and Transformation (LOPSTR’96), LNCS 1207, pages 83–103, Stockholm, Sweden, August 1996. Springer-Verlag.

    Chapter  Google Scholar 

  35. J. W. Lloyd and J. C. Shepherdson. Partial evaluation in logic programming. The Journal of Logic Programming, 11(3& 4):217–242, 1991.

    Article  MathSciNet  MATH  Google Scholar 

  36. K. Marriott, L. Naish, and J.-L. Lassez. Most specific logic programs. Annals of Mathematics and Artificial Intelligence, 1:303–338, 1990.

    Article  MATH  Google Scholar 

  37. A. Mulkers, W. Winsborough, and M. Bruynooghe. Live-structure data-flow analysis for prolog. ACM Transactions on Programming Languages and Systems, 16(2):205–258, 1994.

    Article  Google Scholar 

  38. S. Owen. Issues in the partial evaluation of meta-interpreters. In H. Abramson and M. Rogers, editors, Meta-Programming in Logic Programming, Proceedings of the Meta88 Workshop, June 1988, pages 319–339. MIT Press, 1989.

    Google Scholar 

  39. A. Pettorossi and M. Proietti. Transformation of logic programs: Foundations and techniques. The Journal of Logic Programming, 19& 20:261–320, May 1994.

    Article  MathSciNet  MATH  Google Scholar 

  40. G. Puebla, J. Gallagher, and M. Hermenegildo. Towards integrating partial evaluation in a specialization framework based on generic abstract interpretation. In M. Leuschel, editor, Proceedings of the ILPS’97 Workshop on Specialisation of Declarative Programs and its Application, K.U. Leuven, Tech. Rep. CW 255, pages 29–38, Port Jefferson, USA, October 1997.

    Google Scholar 

  41. G. Puebla and M. Hermenegildo. Abstract specialization and its application to program parallelization. In J. Gallagher, editor, Proceedings of the International Workshop on Logic Program Synthesis and Transformation (LOPSTR’96), LNCS 1207, pages 169–186, Stockholm, Sweden, August 1996.

    Chapter  Google Scholar 

  42. M. H. Sørensen and R. Glück. Introduction to Supercompilation. In J. Hatcliff, T. Mogensen, and P. Thiemann, editors, DIKU 1998 International Summerschool on Partial Evaluation, LNCS 1706, pages 246–270, Copenhagen, Denmark, July 1998. Springer-Verlag. In this volume.

    Google Scholar 

  43. M. H. Sørensen, R. Glück, and N. D. Jones. A positive supercompiler. Journal of Functional Programming, 6(6):811–838, 1996.

    Article  MATH  Google Scholar 

  44. V. F. Turchin. The concept of a supercompiler. ACM Transactions on Programming Languages and Systems, 8(3):292–325, 1986.

    Article  MATH  Google Scholar 

  45. V. F. Turchin. Program transformation with metasystem transitions. Journal of Functional Programming, 3(3):283–313, 1993.

    Article  MathSciNet  Google Scholar 

  46. V. F. Turchin. Metacomputation: Metasystem transitions plus supercompilation. In O. Danvy, R. Glück, and P. Thiemann, editors, Proceedings of the 1996 Dagstuhl Seminar on Partial Evaluation, LNCS 1110, pages 482–509, Schloß Dagstuhl, 1996. Springer-Verlag.

    Google Scholar 

  47. W. Vanhoof. Bottom-up information propagation for partial deduction. In M. Leuschel, editor, Proceedings of the ILPS’97 Workshop on Specialisation of Declarative Programs and its Application, K.U. Leuven, Tech. Rep. CW 255, pages 73–82, Port Jefferson, USA, October 1997.

    Google Scholar 

  48. W. Vanhoof, B. Martens, D. De Schreye, and K. De Vlaminck. Specialising the other way around. In J. Jaffar, editor, Proceedings of the Joint International Conference and Symposium on Logic Programming JICSLP’98, Manchester, UK, June 1998. MIT Press.

    Google Scholar 

  49. P. Wadler. Deforestation: Transforming programs to eliminate intermediate trees. Theoretical Computer Science, 73:231–248, 1990. Preliminary version in ESOP’88, LNCS 300.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1999 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Leuschel, M. (1999). Advanced Logic Program Specialisation. In: Hatcliff, J., Mogensen, T.Æ., Thiemann, P. (eds) Partial Evaluation. DIKU 1998. Lecture Notes in Computer Science, vol 1706. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-47018-2_11

Download citation

  • DOI: https://doi.org/10.1007/3-540-47018-2_11

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-66710-0

  • Online ISBN: 978-3-540-47018-2

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics