Abstract
Using higher-order functions is standard practice in functional programming, but most functional logic programming languages that have been described in the literature lack this feature. The natural way to deal with higher-order functions in the framework of (first-order) term rewriting is through so-called applicative term rewriting systems. In this paper we argue that existing calculi for lazy narrowing either do not apply to applicative systems or handle applicative terms very inefficiently. We propose a new lazy narrowing calculus for applicative term rewriting systems and prove its completeness.
Most of the work reported in this paper was carried out while the first author was at the University of Tsukuba, Doctoral Program of Engineering.
Preview
Unable to display preview. Download preview PDF.
References
S. Antoy, R. Echahed, and M. Hanus, A Needed Narrowing Strategy, Proceedings of the 21st ACM Symposium on Principles of Programming Languages, Portland, pp. 268–279, 1994.
P.G. Bosco and E. Giovannetti, IDEAL: An Ideal Deductive Applicative Language, Proceedings of the IEEE International Symposium on Logic Programming, pp. 89–94, 1986.
N. Dershowitz and J.-P. Jouannaud, Rewrite Systems, in: Handbook of Theoretical Computer Science, Vol. B (ed. J. van Leeuwen), North-Holland, pp. 243–320, 1990.
E. Giovannetti, G. Levi, C. Moiso, and C. Palamidessi, Kernel-LEAF: A Logic plus Functional Language, Journal of Computer and System Sciences 42(2), pp. 139–185, 1991.
Juan Carlos González-Moreno, M.T. Hortalá-González, and M. RodrÃguez-Artalejo, On the Completeness of Narrowing as the Operational Semantics of Functional Logic Programming, Proceedings of the 6th Workshop on Computer Science Logic, San Miniato, Lecture Notes in Computer Science 702, pp. 216–230, 1992.
M. Hanus, The Integration of Functions into Logic Programming: From Theory to Practice, Journal of Logic Programming 19 & 20, pp. 583–628, 1994.
T. Ida and K. Nakahara, Leftmost Outside-In Narrowing Calculi, report ISE-TR-94-107, University of Tsukuba, 1994. To appear in the Journal of Functional Programming.
J.W. Klop, Term Rewriting Systems, in: Handbook of Logic in Computer Science, Vol. II (eds. S. Abramsky, D. Gabbay and T. Maibaum), Oxford University Press, pp. 1–116, 1992.
J.J. Moreno-Navarro and M. Rodriguez-Artalejo, Logic Programming with Functions and Predicates: The Language BABEL, Journal of Logic Programming 12, pp. 191–223, 1992.
J.J. Moreno-Navarro, H. Kuchen, R. Loogen, and M. Rodrìguez-Artalejo, Lazy Narrowing in a Graph Machine, Proceedings of the 2nd International Conference on Algebraic and Logic Programming, Nancy, Lecture Notes in Computer Science 463, pp. 298–317, 1990.
G. Nadathur and D. Miller, An Overview of λ-Prolog, Proceedings of the 5th International Conference on Logic Programming, MIT Press, pp. 810–827, 1988.
S. Okui, A. Middeldorp, and T. Ida, Lazy Narrowing: Strong Completeness and Eager Variable Elimination, Proceedings of the 20th Colloquium on Trees in Algebra and Programming, Aarhus, Lecture Notes in Computer Science 915, pp. 394–408, 1995.
C. Prehofer, Higher-Order Narrowing, Proceedings of the 9th IEEE Symposium on Logic in Computer Science, Paris, pp. 507–516, 1994.
U.S. Reddy, Narrowing as the Operational Semantics of Functional Languages, Proceedings of the IEEE International Symposium on Logic Programming, Boston, pp. 138–151, 1985.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1995 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Nakahara, K., Middeldorp, A., Ida, T. (1995). A complete narrowing calculus for higher-order functional logic programming. In: Hermenegildo, M., Swierstra, S.D. (eds) Programming Languages: Implementations, Logics and Programs. PLILP 1995. Lecture Notes in Computer Science, vol 982. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0026816
Download citation
DOI: https://doi.org/10.1007/BFb0026816
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-60359-7
Online ISBN: 978-3-540-45048-1
eBook Packages: Springer Book Archive