Work

Determinism Types for Functional Logic Programming

Year: 2025
Type: conference-paper
Abstract: Functional logic programming languages, such as Curry, integrate features of functional and logic paradigms, in particular, demand-driven deterministic evaluation from functional programming with non-deterministic search from logic programming. Though useful for programming, this combination can lead to unintended results and subtle bugs. To support programming with this powerful computation model, this paper proposes a method to detect unintended non-determinism at compile time. For this purpose, we propose determinism types to approximate the determinism behavior of functions and expressions. In contrast to standard types in strongly typed languages, determinism types do not restrict the set of admissible programs but support the programmer and programming tools in reasoning about functional logic programs, e.g., to enforce determinism in top-level I/O operations. We present the motivation behind this approach, discuss core concepts of functional logic programming and Curry, and outline methods to check for determinism through type-based analysis.
Authors: Michael Hanus, Kai-Oliver Prott
Language: English
Subfield: Software
Open Access status: hybrid
OpenAlex ID: W7114996729
FWCI: 0.497
Cites: 37
Cited by: 1
Related to: 10