English
Related papers

Related papers: Polymonadic Programming

200 papers

Wadler and Thiemann unified type-and-effect systems with monadic semantics via a syntactic correspondence and soundness results with respect to an operational semantics. They conjecture that a general, "coherent" denotational semantics can…

Programming Languages · Computer Science 2014-01-22 Dominic Orchard , Tomas Petricek , Alan Mycroft

Regular languages -- the languages accepted by deterministic finite automata -- are known to be precisely the languages recognized by finite monoids. This characterization is the origin of algebraic language theory. In this paper, we…

Formal Languages and Automata Theory · Computer Science 2025-05-06 Fabian Lenke , Stefan Milius , Henning Urbat , Thorsten Wißmann

Given a programming language, can we give a monadic denotational semantics that is stable under language extension? Models containing only a single monad are not stable. Models based on type-and-effect systems, in which there is a monad for…

Programming Languages · Computer Science 2017-07-24 Ohad Kammar , Dylan McDermott

The modern theory of functional programming languages uses monads for encoding computational side-effects and side-contexts, beyond bare-bone program logic. Even though quantum computing is intrinsically side-effectful (as in quantum…

Quantum Physics · Physics 2025-10-07 Hisham Sati , Urs Schreiber

The selection monad on a set consists of selection functions. These select an element from the set, based on a loss (dually, reward) function giving the loss resulting from a choice of an element. Abadi and Plotkin used the monad to model a…

Programming Languages · Computer Science 2025-04-08 Gordon Plotkin , Ningning Xie

Dependent types provide a lightweight and modular means to integrate programming and formal program verification. In particular, the types of programs written in dependently typed programming languages (Agda, Idris, F*, etc.) can be used to…

Logic in Computer Science · Computer Science 2017-10-10 Danel Ahman

Monads have become a powerful tool for structuring effectful computations in functional programming, because they make the order of effects explicit. When translating pure code to a monadic version, we need to specify evaluation order…

Programming Languages · Computer Science 2012-02-15 Tomas Petricek

Strong monads are important for several applications, in particular, in the denotational semantics of effectful languages, where strength is needed to sequence computations that have free variables. Strength is non-trivial: it can be…

Logic in Computer Science · Computer Science 2022-07-05 Dylan McDermott , Tarmo Uustalu

In semantics and in programming practice, algebraic concepts such as monads or, essentially equivalently, (large) Lawvere theories are a well-established tool for modelling generic side-effects. An important issue in this context are…

Logic in Computer Science · Computer Science 2015-03-17 Sergey Goncharov , Lutz Schröder

Relational properties describe multiple runs of one or more programs. They characterize many useful notions of security, program refinement, and equivalence for programs with diverse computational effects, and they have received much…

Clones are specializations of operads forming powerful instruments to describe varieties of algebras wherein repeating variables are allowed in their equations. They allow us in this way to realize and study a large range of algebraic…

Combinatorics · Mathematics 2026-04-08 Samuele Giraudo

There is a recent interest for the verification of monadic programs using proof assistants. This line of research raises the question of the integration of monad transformers, a standard technique to combine monads. In this paper, we extend…

Logic in Computer Science · Computer Science 2021-07-20 Reynald Affeldt , David Nowak

Monads play an important role in both the syntax and semantics of modern functional programming languages. The problem of combining them has been of profound interest at least since the 90s, and different approaches have been employed to…

Category Theory · Mathematics 2025-09-29 Lorenzo Perticone

We extend intersection types to a computational $\lambda$-calculus with algebraic operations \`a la Plotkin and Power. We achieve this by considering monadic intersections, whereby computational effects appear not only in the operational…

Programming Languages · Computer Science 2024-01-24 Francesco Gavazzo , Riccardo Treglia , Gabriele Vanoni

A long-standing open problem in the semantics of programming languages supporting probabilistic choice is to find a commutative monad for probability on the category DCPO. In this paper we present three such monads and a general…

Logic in Computer Science · Computer Science 2021-07-29 Xiaodong Jia , Bert Lindenhovius , Michael Mislove , Vladimir Zamdzhiev

We develop a method to incrementally construct programming languages. Our approach is categorical: each layer of the language is described as a monad. Our method either (i) concretely builds a distributive law between two monads, i.e.…

Logic in Computer Science · Computer Science 2018-10-08 Fredrik Dahlqvist , Louis Parlant , Alexandra Silva

Modeling sequential and parallel composition of effectful computations has been investigated in a variety of languages for a long time. In particular, the popular do-notation provides a lightweight effect embedding for any instance of a…

Programming Languages · Computer Science 2024-07-11 David Richter , Timon Böhler , Pascal Weisenburger , Mira Mezini

Monadic programming presents a significant challenge for many programmers. In light of category theory, we offer a new perspective on the use of monads in functional programming. This perspective is clarified through numerous examples coded…

Programming Languages · Computer Science 2024-10-14 Fethi Kadhi

Emerging computational paradigms, such as probabilistic and hybrid programming, introduce new primitive operations that often need to be combined with classic programming constructs. However, it still remains a challenge to provide a…

Logic in Computer Science · Computer Science 2018-04-13 Fredrik Dahlqvist , Renato Neves

The original purpose of component-based development was to provide techniques to master complex software, through composition, reuse and parametrisation. However, such systems are rapidly moving towards a level in which software becomes…

Logic in Computer Science · Computer Science 2016-08-02 Renato Neves , Luis S. Barbosa , Dirk Hofmann , Manuel A. Martins