Advertisement

Narrowing the narrowing space

  • Sergio Antoy
  • Zena M. Ariola
Paradigm Integration
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1292)

Abstract

We introduce a framework for managing as a whole the space of a narrowing computation. The aim of our framework is to find a finite representation of an infinite narrowing space. This, in turn, allows us to replace an infinite enumeration of computed answers with an equivalent finite representation. We provide a semidecidable condition for this result. Our framework is intended to be used by implementations of functional logic programming languages. Our approach borrows from the memoization technique used in the implementation of functional languages. Since narrowing adds non-determinism and unifiers to functional evaluation, we develop a new approach based on graphs to memoize the outcome of a goal.

Keywords

Functional logic programming Narrowing Narrowing space Computed expression Regular computed expression Finite representation 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    D. Angluin and C. Smith. Inductive inference: Theory and methods Computing Surveys, 15(3):237–269, 1983.Google Scholar
  2. 2.
    S. Antoy, R. Echahed, and M. Hanus. A needed narrowing strategy. In Proc. 21st ACM Symposium on Principles of Programming Languages, pages 268–279, Portland, 1994. URL www.cs.pdx.edu/≈antoy/publications. html.Google Scholar
  3. 3.
    S. Antoy, R. Echahed, and M. Hanus. A parallel narrowing strategy. In 14th Int'l Conference on Logic Programming, Leuven, Belgium, July 1997. (to appear) URL www.cs.pdx.edu/≈antoy/publications.html.Google Scholar
  4. 4.
    A. Bockmayr, S. Krischer, and A. Werner. An optimal narrowing strategy for general canonical systems. In Proc. of the 3rd Intern. Workshop on Conditional Term Rewriting Systems, pages 483–497. Springer LNCS 656, 1992.Google Scholar
  5. 5.
    R.S. Boyer and J.S. Moore. Proving theorems about LISP functions. JACM, 22(1):129–144, Jan. 1975.Google Scholar
  6. 6.
    J. Darlington and Y. Guo. Narrowing and unification in functional programming — an evaluation mechanism for absolute set abstraction. In Proc. of the Conference on Rewriting Techniques and Applications, pages 92–108. Springer LNCS 355, 1989.Google Scholar
  7. 7.
    N. Dershowitz and J. Jouannaud. Rewrite systems. In J. van Leeuwen, editor, Handbook of Theoretical Computer Science B: Formal Methods and Semantics, chapter 6, pages 243–320. North Holland, Amsterdam, 1990.Google Scholar
  8. 8.
    R. Echahed. On completeness of narrowing strategies. In Proc. CAAP'88, pages 89–101. Springer LNCS 299, 1988.Google Scholar
  9. 9.
    R. Echahed. Uniform narrowing strategies. In Proceedings of the Third International Conference on Algebraic and Logic Programming, pages 259–275, Volterra, Italy, September 1992.Google Scholar
  10. 10.
    M. J. Fay. First-order unification in an equational theory. In Proc. 4th Workshop on Automated Deduction, pages 161–167, Austin (Texas), 1979. Academic Press.Google Scholar
  11. 11.
    L. Fribourg. SLOG: A logic programming language interpreter based on clausal superposition and rewriting. In Proc. IEEE Internat. Symposium on Logic Programming, pages 172–184, Boston, 1985.Google Scholar
  12. 12.
    S.J. Garland and J.V. Guttag. Inductive methods for reasoning about abstract data types. In ACM SIGACT-SIGPLAN Symposium of Principles of Programming Languages, pages 219–228, 1988.Google Scholar
  13. 13.
    E. Giovannetti, G. Levi, C. Moiso, and C. Palamidessi. Kernel LEAF: a logic plus functional language. The Journal of Computer and System Sciences, 42:139–185, 1991.Google Scholar
  14. 14.
    W. Hans, R. Loogen, and S. Winkler. On the interaction of lazy evaluation and backtracking. In Proc. of the 4th International Symposium on Programming Language Implementation and Logic Programming, pages 355–369. Springer LNCS 631, 1992.Google Scholar
  15. 15.
    M. Hanus. Lazy narrowing with simplification. Computer Languages (to appear), 1997.Google Scholar
  16. 16.
    A. Herold. Narrowing techniques applied to idempotent unification. Technical Report SR-86-16, SEKI, 1986.Google Scholar
  17. 17.
    S. Hölldobler. Foundations of Equational Logic Programming. Springer LNCS 353, 1989.Google Scholar
  18. 18.
    G. Huet and J.-M. Hullot. Proofs by induction in equational theories with constructors. JCSS, 25:239–266, 1982.Google Scholar
  19. 19.
    J. W. Klop. Term Rewriting Systems. In S. Abramsky, D. Gabbay, and T. Maibaum, editors, Handbook of Logic in Computer Science, Vol. II, pages 1–112. Oxford University Press, 1992.Google Scholar
  20. 20.
    S. Krischer and A. Bockmayr. Detecting redundant narrowing derivations by the LSE-SL reducibility test. In Proc. RTA'91. Springer LNCS 488, 1991.Google Scholar
  21. 21.
    A. Middeldorp and E. Hamoen. Counterexamples to completeness results for basic narrowing (extended abstract). In Proceedings of the Third International Conference on Algebraic and Logic Programming, pages 244–258, Volterra, Italy, September 1992.Google Scholar
  22. 22.
    J. J. Moreno-Navarro, H. Kuchen, R. Loogen, and M. Rodriguez-Artalejo. Lazy narrowing in a graph machine. In Proc. Second International Conference on Algebraic and Logic Programming, pages 298–317. Springer LNCS 463, 1990.Google Scholar
  23. 23.
    J. J. Moreno-Navarro and M. Rodríguez-Artalejo. Logic programming with functions and predicates: The language BABEL. Journal of Logic Programming, 12:191–223, 1992.Google Scholar
  24. 24.
    W. Nutt, P. Réty, and G. Smolka. Basic narrowing revisited. Journal of Symbolic Computation, 7:295–317, 1989.Google Scholar
  25. 25.
    S. L. Peyton Jones. The implementation of Functional Programming Languages. Prentice-Hall International, Englewood Cliffs, N.J., 1987.Google Scholar
  26. 26.
    U. S. Reddy. Narrowing as the operational semantics of functional languages. In Proc. IEEE Internat. Symposium on Logic Programming, pages 138–151, Boston, 1985.Google Scholar
  27. 27.
    J.-H. You. Unification modulo an equality theory for equational logic programming. The Journal of Computer and System Sciences, 42(1):54–75, 1991.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1997

Authors and Affiliations

  • Sergio Antoy
    • 1
  • Zena M. Ariola
    • 2
  1. 1.Portland State UniversityUSA
  2. 2.University of OregonOregon

Personalised recommendations