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

05/17/2019
by   Sandra Dylus, et al.
0

This paper presents PFLP, a library for probabilistic programming in the functional logic programming language Curry. It demonstrates how the concepts of a functional logic programming language support the implementation of a library for probabilistic programming. In fact, the paradigms of functional logic and probabilistic programming are closely connected. That is, language characteristics from one area exist in the other and vice versa. For example, the concepts of non-deterministic choice and call-time choice as known from functional logic programming are related to and coincide with stochastic memoization and probabilistic choice in probabilistic programming, respectively. We will further see that an implementation based on the concepts of functional logic programming can have benefits with respect to performance compared to a standard list-based implementation and can even compete with full-blown probabilistic programming languages, which we illustrate by several benchmarks. Under consideration in Theory and Practice of Logic Programming (TPLP).

READ FULL TEXT

page 1

page 2

page 3

page 4

research
04/17/2018

EBG: A Lazy Functional Programming Language Implemented on the Java Virtual Machine

This technical report describes the implementation of a lazy functional ...
research
06/02/2020

Effectful Programming in Declarative Languages with an Emphasis on Non-Determinism: Applications and Formal Reasoning

This thesis investigates effectful declarative programming with an empha...
research
08/27/2020

Memoized Pull-Tabbing for Functional Logic Programming

Pull-tabbing is an evaluation technique for functional logic programs wh...
research
09/22/2020

Research Summary on Implementing Functional Patterns by Synthesizing Inverse Functions

In this research summary we present our recent work on implementing func...
research
11/29/2019

Juniper: A Functional Reactive Programming Language for the Arduino

This paper presents the design and implementation of Juniper: a function...
research
02/19/2022

A Probabilistic Programming Idiom for Active Knowledge Search

In this paper, we derive and implement a probabilistic programming idiom...
research
12/24/2019

Composable Effects for Flexible and Accelerated Probabilistic Programming in NumPyro

NumPyro is a lightweight library that provides an alternate NumPy backen...

Please sign up or login with your details

Forgot password? Click here to reset