An implementation of narrowing strategies

  • Authors:
  • Sergio Antoy;Bart Massey;Michael Hanus;Frank Steiner

  • Affiliations:
  • Portland State University, Portland, OR;Portland State University, Portland, OR;Christian-Albrechts-Universität Kiel, Kiel, Germany;Christian-Albrechts-Universität Kiel, Kiel, Germany

  • Venue:
  • Proceedings of the 3rd ACM SIGPLAN international conference on Principles and practice of declarative programming
  • Year:
  • 2001

Quantified Score

Hi-index 0.00

Visualization

Abstract

This paper describes an implementation of narrowing, an essential component of implementations of modern functional logic languages. These implementations rely on narrowing, in particular on some optimal narrowing strategies, to execute functional logic programs. We translate functional logic programs into imperative (Java) programs without an intermediate abstract machine. A central idea of our approach is the explicit representation and processing of narrowing computations as data objects. This enables the implementation of operationally complete strategies (i.e., without backtracking) or techniques for search control (e.g., encapsulated search). Thanks to the use of an intermediate and portable represen tation of programs, our implementation is general enough to be used as a common back end for a wide variety of functional logic languages.