Finn Teegen

dblp:211/7554 · DBLP profile ↗
← Back
6ranked-venue papers
1as first author
4since 2021 · last 2023
0000-0002-7905-3804ORCID · corroborated

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 6 · 1 first-author · 4 since 2021Theory of computation · 2 · 2 since 2021
YearPublicationVenuePosition
2023 Embedding Functional Logic Programming in Haskell via a Compiler Plugin
Kai-Oliver Prott, Finn Teegen, Jan Christiansen
PADL2
2022 A Monadic Implementation of Functional Logic Programs
Michael Hanus, Kai-Oliver Prott, Finn Teegen
PPDP3
2021 Haskell⁻¹: automatic function inversion in Haskell
abstract
We present an approach for automatic function inversion in Haskell. The inverse functions we generate are based on an extension of Haskell's computational model with non-determinism and free variables. We implement this functional logic extension of Haskell via a monadic lifting of functions and type declarations. Using inverse functions, we additionally show how Haskell's pattern matching can be augmented with support for functional patterns, which enable arbitrarily deep pattern matching in data structures. Finally, we provide a plugin for the Glasgow Haskell Compiler to seamlessly integrate inverses and functional patterns into the language, covering almost all of the Haskell2010 language standard.
Finn Teegen, Kai-Oliver Prott, Niels Bunkenburg
Haskell1
2021 From Non-determinism to Goroutines: A Fair Implementation of Curry in Go
abstract
The declarative programming language Curry amalgamates demand-driven evaluation from functional programming with non-determinism from logic programming. In contrast to Prolog, the search strategy for non-deterministic computations is not fixed so that complete or parallel strategies are reasonable for Curry. In particular, a desirable option is a fair strategy which frees the programmer from considering the influence of the search strategy to the success of a computation. In this paper we describe an implementation with this property. Based on recent developments on operational models for functional logic programming, we present a new implementation which transforms Curry programs in several transformation steps into Go programs. By exploiting lightweight threads in the form of goroutines, we obtain a complete and fair implementation which automatically uses multi-processing to speed up non-deterministic computations. This has the effect that, in some cases, non-deterministic algorithms are more efficiently evaluated than deterministic ones.
Jonas Böhm, Michael Hanus, Finn Teegen
PPDP3
2020 Implementing a Library for Probabilistic Programming Using Non-strict Non-determinism
abstract
Abstract This paper presentsPFLP, 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.
Sandra Dylus, Jan Christiansen, Finn Teegen
Theory Pract. Log. Program.3
2018 Probabilistic Functional Logic Programming
Sandra Dylus, Jan Christiansen, Finn Teegen
PADL3