Singular and Plural Functions for Functional Logic Programming
Adri\'an Riesco, Juan Rodr\'iguez-Hortal\'a

TL;DR
This paper introduces two new compositional plural semantics for functional logic programming that differ from run-time choice, enhancing the understanding and practical use of non-deterministic functions with pattern matching.
Contribution
It proposes novel plural semantics for constructor systems that are compositional, studies their properties, and demonstrates their practical application in a combined semantics language implemented in Maude.
Findings
New plural semantics are compositional and form a hierarchy based on computed values.
A syntactic criterion identifies programs where semantics behave identically.
A language combining call-time choice and plural semantics improves declarative programming capabilities.
Abstract
Functional logic programming (FLP) languages use non-terminating and non-confluent constructor systems (CS's) as programs in order to define non-strict non-determi-nistic functions. Two semantic alternatives have been usually considered for parameter passing with this kind of functions: call-time choice and run-time choice. While the former is the standard choice of modern FLP languages, the latter lacks some properties---mainly compositionality---that have prevented its use in practical FLP systems. Traditionally it has been considered that call-time choice induces a singular denotational semantics, while run-time choice induces a plural semantics. We have discovered that this latter identification is wrong when pattern matching is involved, and thus we propose two novel compositional plural semantics for CS's that are different from run-time choice. We study the basic properties of…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
