From Logic to Functional Logic Programs

05/13/2022
by   Michael Hanus, et al.
0

Logic programming is a flexible programming paradigm due to the use of predicates without a fixed data flow. To extend logic languages with the compact notation of functional programming, there are various proposals to map evaluable functions into predicates in order to stay in the logic programming framework. Since amalgamated functional logic languages offer flexible as well as efficient evaluation strategies, we propose an opposite approach in this paper. By mapping logic programs into functional logic programs with a transformation based on inferring functional dependencies, we develop a fully automatic transformation which keeps the flexibility of logic programming but can improve computations by reducing infinite search spaces to finite ones.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
07/16/2018

In Praise of Impredicativity: A Contribution to the Formalisation of Meta-Programming

Processing programs as data is one of the successes of functional and lo...
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
05/21/2018

One Monad to Prove Them All (Functional Pearl)

One Monad to Prove Them All is a modern fairy tale about curiosity and p...
research
02/19/2019

Composing bidirectional programs monadically (with appendices)

Software frequently converts data from one representation to another and...
research
08/24/2018

Making Bubbling Practical

Bubbling is a run-time graph transformation studied for the execution of...
research
05/27/2011

The Divide-and-Conquer Subgoal-Ordering Algorithm for Speeding up Logic Inference

It is common to view programs as a combination of logic and control: the...
research
08/06/2019

A Transformational Approach to Resource Analysis with Typed-norms Inference

In order to automatically infer the resource consumption of programs, an...

Please sign up or login with your details

Forgot password? Click here to reset