skip to main content
article
Open Access

Partial evaluation of functional logic programs

Published:01 July 1998Publication History
Skip Abstract Section

Abstract

Languages that integrate functional and logic programming with a complete operational semantics are based on narrowing, a unification-based goal-solving mechanism which subsumes the reduction principle of functional languages and the resolution principle of logic languages. In this article, we present a partial evaluation scheme for functional logic languages based on an automatic unfolding algorithm which builds narrowing trees. The method is formalized within the theoretical framework established by Lloyd and Shepherdson for the partial deduction of logic programs, which we have generalized for dealing with functional computations. A generic specialization algorithm is proposed which does not depend on the eager or lazy nature of the narrower being used. To the best of our knowledge, this is the first generic algorithm for the specialization of functional logic programs. We also discuss the relation to work on partial evaluation in functional programming, term-rewriting systems, and logic programming. Finally, we present some experimental results with an implementation of the algorithm which show in practice that the narrowing-driven partial evaluator effectively combines the propagation of partial data structures (by means of logical variables and unification) with better opportunities for optimization (thanks to the functional dimension).

References

  1. ALBERT, E., ALPUENTE, M., FALASCHI, M., JULIJtN, P., AND VIDAL, G. 1998. Improving control in functional logic program specialization. In Proceedings of the 5th Static Analysis Symposium, SAS'98. Lecture Notes in Computer Science. Springer-Verlag, Berlin. To appear.]]Google ScholarGoogle ScholarCross RefCross Ref
  2. ALBERT, E., ALPUENTE, M., FALASCHI, M., AND VIDAL, G. 1998. INDY user's manual. Tech. Rep. DSIC-II/12/98, UPV. Available from URL: http://www, dsic. upv. es/users/elp/papers, html.]]Google ScholarGoogle Scholar
  3. ALPUENTE, M., FALASCHI, M., JULIJtN, P., AND VIDAL, G. 1997. Specialization of lazy functional logic programs. In Proceedings of the ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation, PEPM'97. ACM Press, New York, 151-162.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. ALPUENTE, M., FALASCHI, M., AND LEVI, G. 1995. Incremental constraint satisfaction for equational logic programming. Theor. Comput. Sci. 142, 1, 27-57.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. ALPUENTE, M., FALASCHI, M., AND VIDAL, G. 1996a. A compositional semantic basis for the analysis of equational Horn programs. Theor. Comput. Sci. 165, 1, 97-131.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. ALPUENTE, M., FALASCHI, M., AND VIDAL, G. 1996b. Narrowing-driven partial evaluation of functional logic programs. In Proceedings of the 6th European Symposium on Programming, H. R. Nielson, Ed. Lecture Notes in Computer Science, vol. 1058. Springer-Verlag, Berlin, 45-61.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. ALPUENTE, M., FALASCHI, M.,AND VIDAL, G. 1998a.Experiments with the callby-value partial evaluator.Tech. Rep. DSIC-II/13/98, UPV. Available from http://www, dsic. upv. es/users/elp/papers, html.]]Google ScholarGoogle Scholar
  8. ALPUENTE, M., FALASCHI, M., AND VIDAL, G. 1998b. A unifying view of functional and logic program specialization. A CM Comput. Surv. To appear.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. ANTOY, S., ECHAHED, R., AND HANUS, M. 1994. A needed narrowing strategy. In Proceedings of the 21st ACM Symposium on Principles of Programming Languages. ACM Press, New York, 268-279.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. AaENAS, P., GIL, A., AND L6PEZ, F. 1994. Combining lazy narrowing with disequality constraints. In Proceedings of the 6th International Symposium on Programming Language Implementation and Logic Programming. Lecture Notes in Computer Science, vol. 844. Springer-Verlag, Berlin, 385-399.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. BAADER, F. AND NIPKOW, T. 1998. Term Rewriting and All That. Cambridge University Press, Cambridge, U.K.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. BELLEGARDE, F. 1995. ASTRE: Towards a fully automated program transformation system. In Proceedings of the 6th International Conference on Rewriting Techniques and Applications, J. Hsiang, Ed. Lecture Notes in Computer Science, vol. 914. Springer-Verlag, Berlin, 403-407.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. BENKERIMI, I~. AND HILL, P. 1993. Supporting transformations for the partial evaluation of logic programs. J. Logic Comput. 3, 5, 469-486.]]Google ScholarGoogle ScholarCross RefCross Ref
  14. BENKERIMI, K. AND LLOYD, J. 1990. A partial evaluation procedure for logic programs. In Proceedings of the 1990 North American Conference on Logic Programming, S. Debray and M. Hermenegildo, Eds. The MIT Press, Cambridge, MA, 343-358.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. BERT, D. AND ECHAHED, R. 1986. Design and implementation of a generic, logic and functional programming language. In Proceedings of 1st European Symposium on Programming. Lecture Notes in Computer Science, vol. 213. Springer-Verlag, Berlin, 119-132.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. BERT, D. AND ECHAHED, R. 1995. On the operational semantics of the algebraic and logic programruing language LPG. In Recent Trends in Data Type Specifications. Lecture Notes in Computer Science, vol. 906. Springer-Verlag, Berlin, 132-152.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. BOCKMAYR, t. AND WERNER, t. 1995. LSE narrowing for decreasing conditional term rewrite systems. In Proceedings of Conditional Term Rewriting Systems, CTRS'9g. Lecture Notes in Computer Science, vol. 968. Springer-Verlag, Berlin.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. BOL, R. 1993. Loop checking in partial deduction. J. Logic Program. 16, 1&2, 25-46.]]Google ScholarGoogle ScholarCross RefCross Ref
  19. BONACINA, M. 1988. Partial evaluation by completion. In Conferenza dell'Associazione Italiana per il Calcolo Automatico, G. Italiani et al., Ed.]]Google ScholarGoogle Scholar
  20. BONDORF, t. 1988. Towards a self-applicable partial evaluator for term rewriting systems. In Proceedings of the International Workshop on Partial Evaluation and Mixed Computation, D. Bj0rner, A. Ershov, and N. Jones, Eds. North-Holland, Amsterdam, 27-50.]]Google ScholarGoogle Scholar
  21. BONDORF, A. 1989. A self-applicable partial evaluator for term rewriting systems. In Proceedings of the International Joint Conference on Theory and Practice of Software Development, TAP- SOFT'89, J. Diaz and F. Orejas, Eds. Lecture Notes in Computer Science, vol. 352. Springer- Verlag, Berlin, 81-95.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. BossI, t., GABBRIELLI, M., LEVI, G., AND MARTELLI, M. 1994. The s-semantics approach: Theory and applications. J. Logic Program. 19-20, 149-197.]]Google ScholarGoogle ScholarCross RefCross Ref
  23. BOWEN, K. AND KOWALSKI, R. 1982. Amalgamating language and metalanguage in logic programruing. In Logic Programming, K. Clark and S. Tgrnlund, Eds. Academic Press, New York, 153-172.]]Google ScholarGoogle Scholar
  24. BRUYNOOGHE, M., DE SCHREYE, D., AND MARTENS, B. 1992. A general criterion for avoiding infinite unfolding. New Gen. Comput. 11, 1, 47-79.]]Google ScholarGoogle ScholarCross RefCross Ref
  25. BURSTALL, R. AND DARLINGTON, J. 1977. A transformation system for developing recursive programs. J. A CM 2~, 1, 44-67.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. CHEONG, P. AND FRIBOURG, L. 1992. A survey of the implementations of narrowing. In Declarative Programming. Workshops in Computing, J. Darlington and R. Dietrich, Eds. Springer-Verlag and BCS, Berlin, 177-187.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. CHIN, W. 1993. Towards an automated tupling strategy. In Proceedings of the ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation, PEPM'93. ACM Press, New York, 119-132.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. CONSEL, C. AND DANVY, O. 1991. Static and dynamic semantics processing. In Proceedings of the 18th Annual A CM Symposium on Principles of Programming Languages. ACM Press, New York, 14-24.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. CONSEL, C. AND DANVY, O. 1993. Tutorial notes on partial evaluation. In Proceedings of the 20th Annual A CM Symposium on Principles of Programming Languages. ACM Press, New York, 493-501.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. DARLINGTON, J. 1982. Program transformations. In Functional Programming and Its Applications, J. Darlington, P. Henderson, and D. A. Turner, Eds. Cambridge University Press, Cambridge, U.K., 193-215.]]Google ScholarGoogle Scholar
  31. DARLINGTON, J. AND PULL, H. 1988. A program development methodology based on a unified approach to execution and transformation. In Proceedings of the International Workshop on Partial Evaluation and Mixed Computation, D. Bj0rner, A. Ershov, and N. Jones, Eds. North- Holland, Amsterdam, 117-131.]]Google ScholarGoogle Scholar
  32. DERSHOWITZ, N. 1995. Goal solving as operational semantics. In Proceedings of the 1995 International Logic Programming Symposium, J. Lloyd, Ed. The MIT Press, Cambridge, MA, 3-17.]]Google ScholarGoogle Scholar
  33. DERSHOWITZ, N. AND JOUANNAUD, J.-P. 1990. Rewrite systems. In Handbook of Theoretical Computer Science, J. van Leeuwen, Ed. Vol. B, Formal Models and Semantics. Elsevier, Amsterdam, 243-320.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. DERSHOWITZ, N. AND JOUANNAUD, J.-P. 1991. Notations for rewriting. Bull. Euro. Assoc. Theor. Comp. Sci. 43, 162-172.]]Google ScholarGoogle Scholar
  35. DERSHOWITZ, N. AND REDDY, W. 1993. Deductive and inductive synthesis of equational programs. J. Symbol. Comput. 15, 467-494.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. ECHAHED, R. 1988. On completeness of narrowing strategies. In Proceedings of CAAP'88, the 13th Colloquium on Trees in Algebra and Programming. Lecture Notes in Computer Science, vol. 299. Springer-Verlag, Berlin, 89-101.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. FERNANDEZ, M. 1992. Narrowing based procedures for equational disunification. Appl. Alg. Eng. Commun. Comput. 3, 1-26.]]Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. FRIBOURG, L. 1985. SLOG: A logic programming language interpreter based on clausal superposition and rewriting. In Proceedings of the 2nd IEEE International Symposium on Logic Programming. IEEE Press, New York, 172-185.]]Google ScholarGoogle Scholar
  39. CJALLAGHER, J. 1993. Tutorial on specialisation of logic programs. In Proceedings of the A CM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation, PEPM'93. ACM Press, New York, 88-98.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. CJALLAGHER, J. AND BRUYNOOGHE, M. 1990. Some low-level source transformations for logic programs. In Proceedings of the 2nd Workshop on Meta-Programming in Logic, M. Bruynooghe, Ed. Department of Computer Science, KU Leuven, Belgium, 229-246.]]Google ScholarGoogle Scholar
  41. CJLUCK, R. AND KLIMOV, t. 1993. Occam's razor in metacomputation: The notion of a perfect process tree. In Proceedings of the 3rd International Workshop on Static Analysis, WSA '93, P. Cousot, M. Falaschi, G. Fil~, and A. Rauzy, Eds. Lecture Notes in Computer Science, vol. 724. Springer-Verlag, Berlin, 112-123.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. GLUCK, R. AND SORENSEN, M. 1994. Partial deduction and driving are equivalent. In Proceedings of the 6th International Symposium on Programming Language Implementation and Logic Programming. Lecture Notes in Computer Science, vol. 844. Springer-Verlag, Berlin, 165-181.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. GLUCK, R. AND SORENSEN, M. 1996. A roadmap to metacomputation by supercompilation. In Proceedings of the 1996 Dagstuhl Seminar on Partial Evaluation, O. Danvy, R. Gliick, and P. Thiemann, Eds. Lecture Notes in Computer Science, vol. 1110. Springer-Verlag, Berlin, 137- 160.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. CJLUCK, R., JORGENSEN, J., MARTENS, B., AND SORENSEN, M. 1996. Controlling conjunctive partial deduction of definite logic programs. In Proceedings of the 8th International Symposium on Programming Languages: Implementations, Logics and Programs. Lecture Notes in Computer Science, vol. 1140. Springer-Verlag, Berlin, 152-166.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. HANUS, M. 1990. Compiling logic programs with equality. In Proceedings of the 2nd International Workshop on Programming Language Implementation and Logic Programming. Lecture Notes in Computer Science, vol. 456. Springer-Verlag, Berlin, 387-401.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. HANUS, M. 1991. Efficient implementation of narrowing and rewriting. In Proceedings of the International Workshop on Processing Declarative Knowledge. Lecture Notes in Artificial Intelligence, vol. 567. Springer-Verlag, Berlin, 344-365.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. HANUS, M. 1992. Improving control of logic programs by using functional logic languages. In Proceedings of the ~th International Symposium on Programming Language Implementation and Logic Programming, M. Bruynooghe and M. Wirsing, Eds. Lecture Notes in Computer Science, vol. 631. Springer-Verlag, Berlin, 1-23.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. HANUS, M. 1994a. Combining lazy narrowing with simplification. In Proceedings of the 6th International Symposium on Programming Language Implementation and Logic Programming. Lecture Notes in Computer Science, vol. 844. Springer-Verlag, Berlin, 370-384.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. HANUS, M. 1994b. The integration of functions into logic programming: From theory to practice. J. Logic Program. 19~20, 583-628.]]Google ScholarGoogle Scholar
  50. HANUS, M. 1995. On extra variables in (equational) logic programming. In Proceedings of the 20th International Conference on Logic Programming. The MIT Press, Cambridge, MA, 665-678.]]Google ScholarGoogle Scholar
  51. HANUS, M., KUCHEN, H., AND MORENO-NAVARRO, J. 1995. Curry: A truly functional logic language. In Proceedings of the ILPS'95 Workshop on Visions for the Future of Logic Programming. 95-107.]]Google ScholarGoogle Scholar
  52. HERMENEGILDO, M. AND ROSSI, F. 1989. On the correctness and efficiency of independent Andparallelism in logic programs. In Proceedings of the 1989 North American Conference on Logic Programming, E. Lusk and R. Overbeck, Eds. The MIT Press, Cambridge, MA, 369-389.]]Google ScholarGoogle Scholar
  53. H(JLLDOBLER, S. 1989. Foundations of Equational Logic Programming. Lecture Notes in Artificial Intelligence, vol. 353. Springer-Verlag, Berlin.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  54. HULLOT, J. 1980. Canonical forms and unification. In Proceedings of the 5th International Conference on Automated Deduction. Lecture Notes in Computer Science, vol. 87. Springer-Verlag, Berlin, 318-334.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  55. HUSSMAN, H. 1985. Unification in conditional-equational theories. In Proceedings of the European Conference on Computer Algebra, EUROCAL'85. Lecture Notes in Computer Science, vol. 204. Springer-Verlag, Berlin, 543-553.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  56. JAFFAR, J. AND LASSEZ, J.-L. 1987. Constraint logic programming. In Proceedings of the lath Annual A CM Symposium on Principles of Programming Languages. ACM Press, New York, 111-119.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  57. JONES, N. 1994. The essence of program transformation by partial evaluation and driving. In Logic, Language and Computation, N. Jones, M. Hagiya, and M. Sato, Eds. Lecture Notes in Computer Science, vol. 792. Springer-Verlag, Berlin, 206-224.]]Google ScholarGoogle Scholar
  58. JONES, N., GOMARD, C., AND SESTOFT, P. 1993. Partial Evaluation and Automatic Program Generation. Prentice-Hall, Englewood Cliffs, NJ.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  59. JORGENSEN, J., LEUSCHEL, M., AND MARTENS, B. 1996. Conjunctive partial deduction in practice. In Proceedings of the International Workshop on Logic Program Synthesis and Transformation, LOPSTR'96, J. Gallager, Ed. Lecture Notes in Computer Science, vol. 1207. Springer-Verlag, Berlin, 59-82.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  60. KLOP, J. 1992. Term rewriting systems. In Handbook of Logic in Computer Science, S. Abramsky, D. Gabbay, and T. Maibaum, Eds. Vol. I. Oxford University Press, Oxford, 1-112.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  61. KOMOROWSKI, H. 1982. Partial evaluation as a means for inferencing data structures in an applicative language: A theory and implementation in the case of Prolog. In Proceedings of the 9th A CM Symposium on Principles of Programming Languages. ACM Press, New York, 255-267.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  62. LAFAVE, L. AND GALLAGHER, J. 1997a. Constraint-based partial evaluation of rewriting-based functional logic programs. In Proceedings of the 7th International Workshop on Logic Program Synthesis and Transformation, LOPSTR'97. Lecture Notes in Computer Science. Springer- Verlag, Berlin. To appear.]]Google ScholarGoogle Scholar
  63. LAFAVE, L. AND GALLAGHER, J. 1997b. Partial evaluation of functional logic programs in rewritingbased languages. Tech. Rep. CSTR-97-001, Department of Computer Science, University of Bristol, Bristol, England.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  64. LAM, J. AND I~USALIK, t. 1991. A comparative analysis of partial deductors for pure Prolog. Tech. rep., Department of Computational Science, University of Saskatchewan, Canada. Revised April 1991.]]Google ScholarGoogle Scholar
  65. LASSEZ, J.-L., MAHER, M. J., AND MARRIOTT, I~. 1988. Unification revisited. In Foundations of Deductive Databases and Logic Programming, J. Minker, Ed. Morgan Kaufmann, Los Altos, CA, 587-625.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  66. LEUSCHEL, M. 1998. The ECCE partial deduction system and the DPPD library of benchmarks. Tech. rep., Accessible via http ://www. cs. kuleuven, ac. be/~ipai.]]Google ScholarGoogle Scholar
  67. LEUSCHEL, M., DE SCHREYE, D., AND DE WAAL, A. 1996. A conceptual embedding of folding into partial deduction: Towards a maximal integration. In Proceedings of the Joint International Conference and Symposium on Logic Programming, JICSLP'96, M. Maher, Ed. The MIT Press, Cambridge, MA, 319-332.]]Google ScholarGoogle Scholar
  68. LEUSCHEL, M. AND MARTENS, B. 1996. Global control for partial deduction through characteristic atoms and global trees. In Proceedings of the 1996 Dagstuhl Seminar on Partial Evaluation, O. Danvy, R. Gliick, and P. Thiemann, Eds. Lecture Notes in Computer Science, vol. 1110. Springer-Verlag, Berlin, 263-283.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  69. LEUSCHEL, M., MARTENS, B., AND DE SCHREYE, D. 1998. Controlling generalization and polyvariance in partial deduction of normal logic programs. A CM Trans. Program. Lang. Syst. 20, 1, 208- 258.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  70. LEVI, G. AND SIROVICH, F. 1975. Proving program properties, symbolic evaluation and logical procedural semantics. In Proceedings of the ~th International Symposium on Mathematical Foundations of Computer Science, MFCS'75. Lecture Notes in Computer Science, vol. 32. Springer-Verlag, Berlin, 294-301.]]Google ScholarGoogle ScholarCross RefCross Ref
  71. LLOYD, J. AND SHEPHERDSON, J. 1991. Partial evaluation in logic programming. J. Logic Program. 11, 217-242.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  72. MARTENS, B. AND GALLAGHER, J. 1995. Ensuring global termination of partial deduction while allowing flexible polyvariance. In Proceedings of the 12th International Conference on Logic Programming, L. Sterling, Ed. The MIT Press, Cambridge, MA, 597-611.]]Google ScholarGoogle Scholar
  73. MIDDELDORP, A. AND HAMOEN, E. 1994. Completeness results for basic narrowing. Appl. Alg. Eng. Commun. Comput. 5, 213-253.]]Google ScholarGoogle ScholarCross RefCross Ref
  74. MIDDELDORP, t., OKUI, S., AND IDA, T. 1996. Lazy narrowing: Strong completeness and eager variable elimination. Theor. Comput. Sci. 167, 1,2, 95-130.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  75. MINIUSSI, t. AND SHERMAN, D. J. 1996. Squeezing intermediate construction in equational programs. In Proceedings of the 1996 Dagstuhl Seminar on Partial Evaluation, O. Danvy, R. Gliick, and P. Thiemann, Eds. Lecture Notes in Computer Science, vol. 1110. Springer-Verlag, Berlin, 284- 302.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  76. MORENO-NAVARRO, J. AND RODRfGUEZ-ARTALEJO, M. 1992. Logic programming with functions and predicates: The language Babel. J. Logic Program. 12, 3, 191-224.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  77. NUTT, W., R~TY, P., AND SMOLKA, G. 1989. Basic narrowing revisited. J. Symbol. Comput. 7, 295-317.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  78. PADAWlTZ, P. 1988. Computing in Horn Clause Theories. EATCS Monographs on Theoretical Computer Science, vol. 16. Springer-Verlag, Berlin.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  79. PALAMIDESSI, C. 1990. Algebraic properties of idempotent substitutions. In Proceedings of 17th International Colloquium on Automata, Languages and Programming, CAAP'90, M. Paterson, Ed. Lecture Notes in Computer Science, vol. 443. Springer-Verlag, Berlin, 386-399.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  80. PETTOROSSI, t. AND PROIETTI, M. 1994. Transformation of logic programs: Foundations and techniques. J. Logic Program. 19,20, 261-320.]]Google ScholarGoogle ScholarCross RefCross Ref
  81. PETTOROSSI, t. AND PROIETTI, M. 1996. A comparative revisitation of some program transformation techniques. In Proceedings of the 1996 Dagstuhl Seminar on Partial Evaluation, O. Danvy, R. Gliick, and P. Thiemann, Eds. Lecture Notes in Computer Science, vol. 1110. Springer- Verlag, Berlin, 355-385.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  82. RAMfREZ, M. AND FALASCHI, M. 1993. Conditional narrowing with constructive negation. In Proceedings of the 3rd International Workshop on Extensions of Logic Programing, ELP'92, E. Lamina and P. Mello, Eds. Lecture Notes in Artificial Intelligence, vol. 660. Springer-Verlag, Berlin, 59- 79.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  83. REDDY, U. 1985. Narrowing as the operational semantics of functional languages. In Proceedings of 2nd IEEE International Symposium on Logic Programming. IEEE Press, New York, 138-151.]]Google ScholarGoogle Scholar
  84. RI~TY, P. 1987. Improving basic narrowing techniques. In Proceedings of the 1987 Conference on Rewriting Techniques and Applications. Lecture Notes in Computer Science, vol. 256. Springer- Verlag, Berlin, 228-241.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  85. ROMANENKO, A. 1991. Inversion and metacomputation. In Proceedings of the ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation, PEPM'91. ACM Press, New York, 12-22.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  86. SANDS, D. 1995. Higher order expression procedures. In Proceedings of the ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation, PEPM'95. ACM Press, New York, 178-189.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  87. SCHERLIS, W. 1981. Program improvement by internal specialization. In Proceedings of the 8th Annual A CM Symposium on Principles of Programming Languages. ACM Press, New York, 41-49.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  88. SLAGLE, J. 1974. Automated theorem-proving for theories with simplifiers, commutativity and associativity. J. ACM 21, 4, 622-642.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  89. SORENSEN, M. 1994. Turchin's supercompiler revisited: An operational theory of positive information propagation. Tech. Rep. 94//7, Master's Thesis, DIKU, University of Copenhagen, Denmark.]]Google ScholarGoogle Scholar
  90. SORENSEN, M. AND GLUCK, R. 1995. An algorithm of generalization in positive supercompilation. In Proceedings of the 1995 International Logic Programming Symposium, J. Lloyd, Ed. The MIT Press, Cambridge, MA, 465-479.]]Google ScholarGoogle Scholar
  91. SORENSEN, M., GL/JCK, R., AND JONES, N. 1994. Towards unifying partial evaluation, deforestation, supercompilation, and GPC. In Proceedings of the 5th European Symposium on Programming, D. Sannella, Ed. Lecture Notes in Computer Science, vol. 788. Springer-Verlag, Berlin, 485-500.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  92. SORENSEN, M., GL/JCK, R., AND JONES, N. 1996. A positive supercompiler. J. Fttnct. Program. 6, 6, 811-838.]]Google ScholarGoogle ScholarCross RefCross Ref
  93. SUZUKI, T., MIDDELDORP, t., AND IDA, T. 1995. Level-confluence of conditional rewrite systems with extra variables in right-hand sides. In Proceedings of the 6th International Conference on Rewriting Techniques and Applications. Lecture Notes in Computer Science, vol. 914. Springer- Verlag, Berlin, 179-193.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  94. TURCHIN, V. 1986. The concept of a supercompiler. ACM Trans. Program. Lang. Syst. 8, 3, 292-325.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  95. TURCHIN, V. 1988. The algorithm of generalization in the supercompiler. In Proceedings of the International Workshop on Partial Evaluation and Mixed Computation, D. Bjorner, A. Ershov, and N. Jones, Eds. North-Holland, Amsterdam, 531-549.]]Google ScholarGoogle Scholar
  96. TURCHIN, V. 1996. Metacomputation: Metasystem transitions plus supercompilation. In Proceedings of the 1996 Dagsttthl Seminar on Partial Evaluation. Lecture Notes in Computer Science, vol. 1110. Springer-Verlag, Berlin, 481-509.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  97. VIDAL, G. 1996. Semantics-based analysis and transformation of functional logic programs. Ph.D. thesis, DSIC, Universidad Polit6cnica de Valencia, Spain. In spanish.]]Google ScholarGoogle Scholar
  98. WADLER, P. 1990. Deforestation: Transforming programs to eliminate trees. Theor. Cornpttt. Sci. 73, 231-248.]] Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Partial evaluation of functional logic programs

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        Full Access

        • Published in

          cover image ACM Transactions on Programming Languages and Systems
          ACM Transactions on Programming Languages and Systems  Volume 20, Issue 4
          July 1998
          248 pages
          ISSN:0164-0925
          EISSN:1558-4593
          DOI:10.1145/291891
          Issue’s Table of Contents

          Copyright © 1998 ACM

          Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 1 July 1998
          Published in toplas Volume 20, Issue 4

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • article

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader