From functional logic programs to purely functional programs preserving laziness

  • Authors:
  • Bernd Braßel;Sebastian Fischer

  • Affiliations:
  • Christian-Albrechts-University of Kiel;Christian-Albrechts-University of Kiel

  • Venue:
  • IFL'08 Proceedings of the 20th international conference on Implementation and application of functional languages
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

Functional logic languages extend the setting of functional programming by non-deterministic choices, free variables and narrowing. Most existing approaches to simulate logic features in functional languages do not preserve laziness, i.e., they can only model strict logic programming like in Prolog. Lazy functional logic programming however, has interesting properties supporting a more declarative style of programming search without sacrificing efficiency. We will present a recently developed technique to reduce all logic extensions to the single problem of generating unique identifiers. The impact of this reduction is a general scheme for compiling functional logic programs to lazy functional programs without side effects. One of the design goals is that the purely functional parts of a program should not suffer from significant run-time overhead. Preliminary experiments confirm our hope for significant improvements of run-time performance even for non-deterministic programs but suggest further work to improve the memory requirements of those.