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).
- 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 ScholarCross Ref
- 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 Scholar
- 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 ScholarDigital Library
- ALPUENTE, M., FALASCHI, M., AND LEVI, G. 1995. Incremental constraint satisfaction for equational logic programming. Theor. Comput. Sci. 142, 1, 27-57.]] Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- ALPUENTE, M., FALASCHI, M., AND VIDAL, G. 1998b. A unifying view of functional and logic program specialization. A CM Comput. Surv. To appear.]] Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- BAADER, F. AND NIPKOW, T. 1998. Term Rewriting and All That. Cambridge University Press, Cambridge, U.K.]] Google ScholarDigital Library
- 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 ScholarDigital Library
- BENKERIMI, I~. AND HILL, P. 1993. Supporting transformations for the partial evaluation of logic programs. J. Logic Comput. 3, 5, 469-486.]]Google ScholarCross Ref
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- BOL, R. 1993. Loop checking in partial deduction. J. Logic Program. 16, 1&2, 25-46.]]Google ScholarCross Ref
- BONACINA, M. 1988. Partial evaluation by completion. In Conferenza dell'Associazione Italiana per il Calcolo Automatico, G. Italiani et al., Ed.]]Google Scholar
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- 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 Scholar
- BRUYNOOGHE, M., DE SCHREYE, D., AND MARTENS, B. 1992. A general criterion for avoiding infinite unfolding. New Gen. Comput. 11, 1, 47-79.]]Google ScholarCross Ref
- BURSTALL, R. AND DARLINGTON, J. 1977. A transformation system for developing recursive programs. J. A CM 2~, 1, 44-67.]] Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 ScholarDigital Library
- DERSHOWITZ, N. AND JOUANNAUD, J.-P. 1991. Notations for rewriting. Bull. Euro. Assoc. Theor. Comp. Sci. 43, 162-172.]]Google Scholar
- DERSHOWITZ, N. AND REDDY, W. 1993. Deductive and inductive synthesis of equational programs. J. Symbol. Comput. 15, 467-494.]] Google ScholarDigital Library
- 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 ScholarDigital Library
- FERNANDEZ, M. 1992. Narrowing based procedures for equational disunification. Appl. Alg. Eng. Commun. Comput. 3, 1-26.]]Google ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- HANUS, M. 1994b. The integration of functions into logic programming: From theory to practice. J. Logic Program. 19~20, 583-628.]]Google Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- H(JLLDOBLER, S. 1989. Foundations of Equational Logic Programming. Lecture Notes in Artificial Intelligence, vol. 353. Springer-Verlag, Berlin.]] Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- JONES, N., GOMARD, C., AND SESTOFT, P. 1993. Partial Evaluation and Automatic Program Generation. Prentice-Hall, Englewood Cliffs, NJ.]] Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 Scholar
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- LLOYD, J. AND SHEPHERDSON, J. 1991. Partial evaluation in logic programming. J. Logic Program. 11, 217-242.]] Google ScholarDigital Library
- 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 Scholar
- MIDDELDORP, A. AND HAMOEN, E. 1994. Completeness results for basic narrowing. Appl. Alg. Eng. Commun. Comput. 5, 213-253.]]Google ScholarCross Ref
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- NUTT, W., R~TY, P., AND SMOLKA, G. 1989. Basic narrowing revisited. J. Symbol. Comput. 7, 295-317.]] Google ScholarDigital Library
- PADAWlTZ, P. 1988. Computing in Horn Clause Theories. EATCS Monographs on Theoretical Computer Science, vol. 16. Springer-Verlag, Berlin.]] Google ScholarDigital Library
- 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 ScholarDigital Library
- PETTOROSSI, t. AND PROIETTI, M. 1994. Transformation of logic programs: Foundations and techniques. J. Logic Program. 19,20, 261-320.]]Google ScholarCross Ref
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- SLAGLE, J. 1974. Automated theorem-proving for theories with simplifiers, commutativity and associativity. J. ACM 21, 4, 622-642.]] Google ScholarDigital Library
- 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 Scholar
- 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 Scholar
- 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 ScholarDigital Library
- SORENSEN, M., GL/JCK, R., AND JONES, N. 1996. A positive supercompiler. J. Fttnct. Program. 6, 6, 811-838.]]Google ScholarCross Ref
- 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 ScholarDigital Library
- TURCHIN, V. 1986. The concept of a supercompiler. ACM Trans. Program. Lang. Syst. 8, 3, 292-325.]] Google ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- VIDAL, G. 1996. Semantics-based analysis and transformation of functional logic programs. Ph.D. thesis, DSIC, Universidad Polit6cnica de Valencia, Spain. In spanish.]]Google Scholar
- WADLER, P. 1990. Deforestation: Transforming programs to eliminate trees. Theor. Cornpttt. Sci. 73, 231-248.]] Google ScholarDigital Library
Index Terms
- Partial evaluation of functional logic programs
Recommendations
Specialization of lazy functional logic programs
Partial evaluation is a method for program specialization based on fold/unfold transformations [8, 25]. Partial evaluation of pure functional programs uses mainly static values of given data to specialize the program [15, 44]. In logic programming, the ...
Partial evaluation of lazy functional logic programs: Thesis
This paper abstracts the contents of a PhD dissertation entitled “Partial Evaluation of Lazy Functional Logic Programs” which has been defended at the Technical University of Valencia, promoted by Prof. María Alpuente. Partial evaluation is an automatic ...
Specialization of lazy functional logic programs
PEPM '97: Proceedings of the 1997 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulationPartial evaluation is a method for program specialization based on fold/unfold transformations [8, 25]. Partial evaluation of pure functional programs uses mainly static values of given data to specialize the program [15, 44]. In logic programming, the ...
Comments