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.
This work has been supported in part by the National Science Foundation under grants CCR-9406751, CCR-9410237, CCR-9624711.
Preview
Unable to display preview. Download preview PDF.
References
D. Angluin and C. Smith. Inductive inference: Theory and methods Computing Surveys, 15(3):237–269, 1983.
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.
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.
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.
R.S. Boyer and J.S. Moore. Proving theorems about LISP functions. JACM, 22(1):129–144, Jan. 1975.
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.
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.
R. Echahed. On completeness of narrowing strategies. In Proc. CAAP'88, pages 89–101. Springer LNCS 299, 1988.
R. Echahed. Uniform narrowing strategies. In Proceedings of the Third International Conference on Algebraic and Logic Programming, pages 259–275, Volterra, Italy, September 1992.
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.
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.
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.
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.
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.
M. Hanus. Lazy narrowing with simplification. Computer Languages (to appear), 1997.
A. Herold. Narrowing techniques applied to idempotent unification. Technical Report SR-86-16, SEKI, 1986.
S. Hölldobler. Foundations of Equational Logic Programming. Springer LNCS 353, 1989.
G. Huet and J.-M. Hullot. Proofs by induction in equational theories with constructors. JCSS, 25:239–266, 1982.
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.
S. Krischer and A. Bockmayr. Detecting redundant narrowing derivations by the LSE-SL reducibility test. In Proc. RTA'91. Springer LNCS 488, 1991.
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.
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.
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.
W. Nutt, P. Réty, and G. Smolka. Basic narrowing revisited. Journal of Symbolic Computation, 7:295–317, 1989.
S. L. Peyton Jones. The implementation of Functional Programming Languages. Prentice-Hall International, Englewood Cliffs, N.J., 1987.
U. S. Reddy. Narrowing as the operational semantics of functional languages. In Proc. IEEE Internat. Symposium on Logic Programming, pages 138–151, Boston, 1985.
J.-H. You. Unification modulo an equality theory for equational logic programming. The Journal of Computer and System Sciences, 42(1):54–75, 1991.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1997 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Antoy, S., Ariola, Z.M. (1997). Narrowing the narrowing space. In: Glaser, H., Hartel, P., Kuchen, H. (eds) Programming Languages: Implementations, Logics, and Programs. PLILP 1997. Lecture Notes in Computer Science, vol 1292. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0033833
Download citation
DOI: https://doi.org/10.1007/BFb0033833
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-63398-3
Online ISBN: 978-3-540-69537-0
eBook Packages: Springer Book Archive