Memoized Pull-Tabbing for Functional Logic Programming

08/27/2020
by   Michael Hanus, et al.
0

Pull-tabbing is an evaluation technique for functional logic programs which computes all non-deterministic results in a single graph structure. Pull-tab steps are local graph transformations to move non-deterministic choices towards the root of an expression. Pull-tabbing is independent of a search strategy so that different strategies (depth-first, breadth-first, parallel) can be used to extract the results of a computation. It has been used to compile functional logic languages into imperative or purely functional target languages. Pull-tab steps might duplicate choices in case of shared subexpressions. This could result in a dramatic increase of execution time compared to a backtracking implementation. In this paper we propose a refinement which avoids this efficiency problem while keeping all the good properties of pull-tabbing. We evaluate a first implementation of this improved technique in the Julia programming language.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
05/17/2019

Implementing a Library for Probabilistic Programming using Non-strict Non-determinism

This paper presents PFLP, a library for probabilistic programming in the...
research
08/22/2018

Synthesizing Set Functions

Set functions are a feature of functional logic programming to encapsula...
research
08/24/2018

Making Bubbling Practical

Bubbling is a run-time graph transformation studied for the execution of...
research
02/01/2023

Ideas for the future of Prolog inspired by Oz

Both Prolog and Oz are multiparadigm languages with a logic programming ...
research
08/05/2022

Basic Elements of Logical Graphs

We considers how a particular kind of graph corresponds to multiplicativ...
research
02/20/2018

A Testability Analysis Framework for Non-Functional Properties

This paper presents background, the basic steps and an example for a tes...
research
04/17/2019

On Resolving Non-determinism in Choreographies

Choreographies specify multiparty interactions via message passing. A re...

Please sign up or login with your details

Forgot password? Click here to reset