Improving lazy non-deterministic computations by demand analysis

to full text (330 kB)   ZIP
involved person(s) / institution(s)author :
datePublished :
  • June 2012
size23 S.

Functional logic languages combine lazy (demand-driven) evaluation strategies from functional programming with non-deterministic computations from logic programming. The lazy evaluation of non-deterministic subexpressions results in a demand-driven exploration of the search space: if the value of some subexpression is not required, the complete search space connected to it is not explored. On the other hand, this improvement could cause efficiency problems if unevaluated subexpressions are duplicated and later evaluated in different parts of a program. In order to improve the execution behavior in such situations, we propose a program analysis that guides a program transformation to avoid such inefficiencies. We demonstrate the positive effects of this program transformation with KiCS2, a recent highly efficient implementation of the functional logic programming language Curry.
Static URLhttps://www.uni-kiel.de/journals/receive/jportal_jparticle_00000017
 
URN:NBNurn:nbn:de:101:1-2013030710110
IDNumber of report :
  • TR_1209