Transforming functional logic programs into monadic functional programs

  • Authors:
  • Bernd Braßel;Sebastian Fischer;Michael Hanus;Fabian Reck

  • Affiliations:
  • Institut für Informatik, Kiel, Germany;Institut für Informatik, Kiel, Germany;Institut für Informatik, Kiel, Germany;Institut für Informatik, Kiel, Germany

  • Venue:
  • WFLP'10 Proceedings of the 19th international conference on Functional and constraint logic programming
  • Year:
  • 2010

Quantified Score

Hi-index 0.01

Visualization

Abstract

We present a high-level transformation scheme to translate lazy functional logic programs into pure Haskell programs. This transformation is based on a recent proposal to efficiently implement lazy non-deterministic computations in Haskell in a monadic style. We build on this work and define a systematic method to transform lazy functional logic programs into monadic programs with explicit sharing. This results in a transformation scheme which produces high-level and flexible target code. For instance, the target code is parametric w.r.t. the concrete evaluation monad. Thus, different monad instances could, for example, define different search strategies (e.g., depth-first, breadth-first, parallel). We formally describe the basic compilation scheme and some useful extensions.