Typed Higher-Order Narrowing without Higher-Order Strategies

  • Sergio Antoy
  • Andrew Tolmach
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1722)


We describe a new approach to higher-order narrowing computations in a class of systems suitable for functional logic programming. Our approach is based on a translation of these systems into ordinary (first-order) rewrite systems and the subsequent application of conventional narrowing strategies. Our translation is an adaptation to narrowing of Warren’s translation, but unlike similar previous work, we preserve static type information, which has a dramatic effect on the size of the narrowing space. Our approach supports sound, complete, and efficient higher-order narrowing computations in classes of systems larger than those previously proposed.


Source Program Source Problem Applicative Term Functional Logic Algebraic Type 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    Antoy, S.: Optimal non-deterministic functional logic computations. In: Hanus, M., Heering, J., Meinke, K. (eds.) ALP 1997 and HOA 1997. LNCS, vol. 1298, pp. 16–30. Springer, Heidelberg (1997)CrossRefGoogle Scholar
  2. 2.
    Antoy, S., Echahed, R., Hanus, M.: Parallel evaluation strategies for functional logic languages. In: Proc. of the 14th Int. Conference on Logic Programming (ICLP 1997), Leuven, Belgium, pp. 138–152. MIT Press, Cambridge (1997)Google Scholar
  3. 3.
    Bell, J.M., Bellegarde, F., Hook, J.: Type-driven defunctionalization. In: Proc. 2nd International Conference on Functional Programming, pp. 25–37 (June 1997)Google Scholar
  4. 4.
    M. Hanus (ed.): Curry: An integrated functional logic language. Draft, January 13 (1999)Google Scholar
  5. 5.
    González-Moreno, J.C.: A correctness proof for Warren’s HO into FO translation. In: Proc. GULP 1993, Gizzeria Lido, IT, pp. 569–585 (October 1993)Google Scholar
  6. 6.
    Hanus, M., Prehofer, C.: Higher-order narrowing with definitional trees. In: Ganzinger, H. (ed.) RTA 1996. LNCS, vol. 1103, pp. 138–152. Springer, Heidelberg (1996)Google Scholar
  7. 7.
    Hanus, M.: Polymorphic higher-order programming in prolog. In: Proc. 6th International Conference on Logic Programming, pp. 382–397. MIT Press, Cambridge (1989)Google Scholar
  8. 8.
    Hanus, M.: A functional and logic language with polymorphic types. In: Miola, A. (ed.) DISCO 1990. LNCS, vol. 429, pp. 215–224. Springer, Heidelberg (1990)Google Scholar
  9. 9.
    Miller, D.: A logic programming language with lambda-abstraction, function vari- ables, and simple unification. Journal of Logic and Computation 1(4), 497–536 (1991)zbMATHCrossRefMathSciNetGoogle Scholar
  10. 10.
    Nakahara, K., Middeldorp, A., Ida, T.: A complete narrowing calculus for higher-order functional logic programming. In: Swierstra, S.D. (ed.) PLILP 1995. LNCS, vol. 982, pp. 97–114. Springer, Heidelberg (1995)CrossRefGoogle Scholar
  11. 11.
    Reynolds, J.C.: Definitional interpreters for higher-order programming languages. In: ACM National Conference, pp. 717–740. ACM, New York (1972)Google Scholar
  12. 12.
    Tolmach, A., Oliva, D.: From ML to Ada: Strongly-typed language interoper-ability via source translation. Journal of Functional Programming 8(4), 367–412 (1998)zbMATHCrossRefGoogle Scholar
  13. 13.
    Warren, D.H.D.: Higher-order extensions to PROLOG: are they needed? Machine Intelligence 10, 441–454 (1982)Google Scholar
  14. 14.
    Proc. Workshop on Types in Compilation (TIC 1997), Boston College Computer Science Technical Report BCCS-97-03. (June 1997)Google Scholar
  15. 15.
    Leroy, X., Ohori, A. (eds.): TIC 1998. LNCS, vol. 1473. Springer, Heidelberg (1998)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1999

Authors and Affiliations

  • Sergio Antoy
    • 1
  • Andrew Tolmach
    • 1
  1. 1.Department of Computer SciencePortland State UniversityPortlandUSA

Personalised recommendations