Skip to main content

A complete narrowing calculus for higher-order functional logic programming

  • Conference paper
  • First Online:
Programming Languages: Implementations, Logics and Programs (PLILP 1995)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 982))

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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.

    Google Scholar 

  2. 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.

    Google Scholar 

  3. 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.

    Google Scholar 

  4. 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.

    Google Scholar 

  5. 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.

    Google Scholar 

  6. M. Hanus, The Integration of Functions into Logic Programming: From Theory to Practice, Journal of Logic Programming 19 & 20, pp. 583–628, 1994.

    Google Scholar 

  7. 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.

    Google Scholar 

  8. 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.

    Google Scholar 

  9. 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.

    Google Scholar 

  10. 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.

    Google Scholar 

  11. G. Nadathur and D. Miller, An Overview of λ-Prolog, Proceedings of the 5th International Conference on Logic Programming, MIT Press, pp. 810–827, 1988.

    Google Scholar 

  12. 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.

    Google Scholar 

  13. C. Prehofer, Higher-Order Narrowing, Proceedings of the 9th IEEE Symposium on Logic in Computer Science, Paris, pp. 507–516, 1994.

    Google Scholar 

  14. 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.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Manuel Hermenegildo S. Doaitse Swierstra

Rights and permissions

Reprints 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

Publish with us

Policies and ethics