Demo Data from VLDB 2026 / reviewers in the wild / expert
Maciej Piróg
dblp:53/10735
· DBLP profile ↗
14ranked-venue papers
6as first author
1since 2021 · last 2022
0000-0002-5889-3388ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 11 · 4 first-author · 1 since 2021Theory of computation · 6 · 3 first-author
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Software engineering, system software, and programming languages
5 papers |
Programming languages and type systems · 100% | |
| Theoretical computer science
1 paper |
Logic in computer science · 100% |
Topics — the 12 heaviest of 12, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Programming languages and type systems › computational effects › algebraic effects
effect handlers |
2.0 | 5 | 2022 | High-level effect handlers in C++ · Proc. ACM Program. Lang. 2022 Binders by day, labels by night: effect instances via lexically scoped handlers · Proc. ACM Program. Lang. 2020 Abstracting algebraic effects · Proc. ACM Program. Lang. 2019 |
Programming languages and type systems › control operators
delimited control |
0.6 | 1 | 2022 | High-level effect handlers in C++ · Proc. ACM Program. Lang. 2022 |
Programming languages and type systems
language design |
0.6 | 1 | 2022 | High-level effect handlers in C++ · Proc. ACM Program. Lang. 2022 |
Programming languages and type systems › computational effects
type and effect systems |
0.5 | 2 | 2020 | Binders by day, labels by night: effect instances via lexically scoped handlers · Proc. ACM Program. Lang. 2020 Handle with care: relational interpretation of algebraic effects and handlers · Proc. ACM Program. Lang. 2018 |
Programming languages and type systems › computational effects › algebraic effects › effect handlers
lexical effect handlers |
0.4 | 1 | 2020 | Binders by day, labels by night: effect instances via lexically scoped handlers · Proc. ACM Program. Lang. 2020 |
Programming languages and type systems
type systems |
0.4 | 1 | 2019 | Abstracting algebraic effects · Proc. ACM Program. Lang. 2019 |
Programming languages and type systems
language semantics |
0.3 | 1 | 2018 | Handle with care: relational interpretation of algebraic effects and handlers · Proc. ACM Program. Lang. 2018 |
Programming languages and type systems
logical relations |
0.3 | 1 | 2018 | Handle with care: relational interpretation of algebraic effects and handlers · Proc. ACM Program. Lang. 2018 |
Logic in computer science › categorical semantics
abstract syntax |
0.3 | 1 | 2018 | Syntax and Semantics for Operations with Scopes · LICS 2018 |
Logic in computer science
categorical semantics |
0.3 | 1 | 2018 | Syntax and Semantics for Operations with Scopes · LICS 2018 |
Programming languages and type systems › logical relations
kripke logical relation |
0.1 | 1 | 2020 | Binders by day, labels by night: effect instances via lexically scoped handlers · Proc. ACM Program. Lang. 2020 |
Programming languages and type systems
module systems |
0.1 | 1 | 2019 | Abstracting algebraic effects · Proc. ACM Program. Lang. 2019 |
Methods — techniques the papers use, named apart from their topics
coq · 0.8syntactic substitution · 0.7categorical semantics · 0.7object-oriented interface · 0.6manual memory management · 0.6logical relations · 0.4typed runtime coercions · 0.4ML-style modules · 0.4step-indexed logical relations · 0.3
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2022 | High-level effect handlers in C++abstractEffect handlers allow the programmer to implement computational effects, such as custom error handling, various forms of lightweight concurrency, and dynamic binding, inside the programming language. We introduce cpp-effects, a C++ library for effect handlers with a typed high-level, object-oriented interface. We demonstrate that effect handlers can be successfully applied in imperative systems programming languages with manual memory management. Through a collection of examples, we explore how to program effectively with effect handlers in C++, discuss the intricacies and challenges of the implementation, and show that despite its limitations, cpp-effects performance is competitive and in some cases even outperforms state-of-the-art approaches such as C++20 coroutines and the libmprompt library for multiprompt delimited control. Dan R. Ghica, Sam Lindley, Marcos Maronas, Maciej Piróg |
Proc. ACM Program. Lang. | 4 |
| 2020 | Degrading ListsabstractWe discuss the relationship between monads and their known generalisation, graded monads, which are especially useful for modelling computational effects equipped with a form of sequential composition. Specifically, we ask if a graded monad can be extended to a monad, and when such a degrading is in some sense canonical. Our particular examples are the graded monads of lists and non-empty lists indexed by their lengths, which gives us a pretext to study the space of all (non-graded) monad structures on the list and non-empty list endofunctors. We show that, in both cases, there exist infinitely many monad structures. However, while there are at least two ways to complete the graded monad structure on length-indexed lists to a monad structure on the list endofunctor, such a completion for non-empty lists is unique. Dylan McDermott, Maciej Piróg, Tarmo Uustalu |
PPDP | 2 |
| 2020 | Binders by day, labels by night: effect instances via lexically scoped handlersabstractHandlers of algebraic effects aspire to be a practical and robust programming construct that allows one to define, use, and combine different computational effects. Interestingly, a critical problem that still bars the way to their popular adoption is how to combine different uses of the same effect in a program, particularly in a language with a static type-and-effect system. For example, it is rudimentary to define the “mutable memory cell” effect as a pair of operations, put and get , together with a handler, but it is far from obvious how to use this effect a number of times to operate a number of memory cells in a single context. In this paper, we propose a solution based on lexically scoped effects in which each use (an “instance”) of an effect can be singled out by name, bound by an enclosing handler and tracked in the type of the expression. Such a setting proves to be delicate with respect to the choice of semantics, as it depends on the explosive mixture of effects, polymorphism, and reduction under binders. Hence, we devise a novel approach to Kripke-style logical relations that can deal with open terms, which allows us to prove the desired properties of our calculus. We formalise our core results in Coq, and introduce an experimental surface-level programming language to show that our approach is applicable in practice. Dariusz Biernacki, Maciej Piróg, Piotr Polesiuk, Filip Sieczkowski |
Proc. ACM Program. Lang. | 2 |
| 2019 | Equational Theories and Monads from Polynomial Cayley RepresentationsabstractAbstract We generalise Cayley’s theorem for monoids by providing an explicit formula for a (multi-sorted) equational theory represented by the type $$PX \rightarrow X$$ , where $$P$$ is an arbitrary polynomial endofunctor with natural coefficients. From the computational perspective, examples of effects given by such theories include backtracking nondeterminism (obtained with the original Cayley representation $$X \rightarrow X$$ ), finite mutable state (obtained with $$n \rightarrow X$$ , for a constant n), and their different combinations (via $$n \times X \rightarrow X$$ or $$X^n \rightarrow X$$ ). Moreover, we show that monads induced by such theories are implementable using the type formers available in programming languages based on a polymorphic $$\lambda $$ -calculus, both as compositions of algebraic datatypes and as continuation-like monads. We give a set-theoretic model of the latter in terms of Barr-dinatural transformations. We also introduce , a tool that takes a polynomial as an input and generates the corresponding equational theory together with the two implementations of the induced monad in Haskell. Maciej Piróg, Piotr Polesiuk, Filip Sieczkowski |
FoSSaCS | 1 |
| 2019 | Guarded and Unguarded Iteration for Generalized ProcessesabstractModels of iterated computation, such as (completely) iterative monads, often depend on a notion of guardedness, which guarantees unique solvability of recursive equations and requires roughly that recursive calls happen only under certain guarding operations. On the other hand, many models of iteration do admit unguarded iteration. Solutions are then no longer unique, and in general not even determined as least or greatest fixpoints, being instead governed by quasi-equational axioms. Monads that support unguarded iteration in this sense are called (complete) Elgot monads. Here, we propose to equip (Kleisli categories of) monads with an abstract notion of guardedness and then require solvability of abstractly guarded recursive equations; examples of such abstractly guarded pre-iterative monads include both iterative monads and Elgot monads, the latter by deeming any recursive definition to be abstractly guarded. Our main result is then that Elgot monads are precisely the iteration-congruent retracts of abstractly guarded iterative monads, the latter being defined as admitting unique solutions of abstractly guarded recursive equations; in other words, models of unguarded iteration come about by quotienting models of guarded iteration. Sergey Goncharov 0001, Lutz Schröder, Christoph Rauch, Maciej Piróg |
Log. Methods Comput. Sci. | 4 |
| 2019 | Abstracting algebraic effectsabstractProposed originally by Plotkin and Pretnar, algebraic effects and their handlers are a leading-edge approach to computational effects: exceptions, mutable state, nondeterminism, and such. Appreciated for their elegance and expressiveness, they are now progressing into mainstream functional programming languages. In this paper, we introduce and examine programming language constructs that back adoption of programming with algebraic effects on a larger scale in a modular fashion by providing mechanisms for abstraction. We propose two such mechanisms: existential effects (which hide the details of a particular effect from the user) and local effects (which guarantee that no code coming from the outside can interfere with a given effect). The main technical difficulty arises from the dynamic nature of coupling an effectful operation with the right handler during execution, but, as we show in this paper, a carefully designed type system can ensure that this will not break the abstraction. Our main contribution is a novel calculus for algebraic effects and handlers, called λ HEL , equipped with local and existential algebraic effects, in which the dynamic nature of handlers is kept in check by typed runtime coercions. As a proof of concept, we present an experimental programming language based on our calculus, which provides strong abstraction mechanisms via an ML-style module system. Dariusz Biernacki, Maciej Piróg, Piotr Polesiuk, Filip Sieczkowski |
Proc. ACM Program. Lang. | 2 |
| 2018 | Syntax and Semantics for Operations with ScopesabstractMotivated by the problem of separating syntax from semantics in programming with algebraic effects and handlers, we propose a categorical model of abstract syntax with so-called scoped operations. As a building block of a term, a scoped operation is not merely a node in a tree, as it can also encompass a whole part of the term (a scope). Some examples from the area of programming are given by the operation catch for handling exceptions, in which the part in the scope is the code that may raise an exception, or the operation once, which selects a single solution from a nondeterministic computation. A distinctive feature of such operations is their behaviour under program composition, that is, syntactic substitution. Maciej Piróg, Tom Schrijvers, Nicolas Wu, Mauro Jaskelioff |
LICS | 1 |
| 2018 | Handle with care: relational interpretation of algebraic effects and handlersabstractAlgebraic effects and handlers have received a lot of attention recently, both from the theoretical point of view and in practical language design. This stems from the fact that algebraic effects give the programmer unprecedented freedom to define, combine, and interpret computational effects. This plenty-of-rope, however, demands not only a deep understanding of the underlying semantics, but also access to practical means of reasoning about effectful code, including correctness and program equivalence. In this paper we tackle this problem by constructing a step-indexed relational interpretation of a call-by-value calculus with algebraic effect handlers and a row-based polymorphic type-and-effect system. Our calculus, while striving for simplicity, enjoys desirable theoretical properties, and is close to the cores of programming languages with algebraic effects used in the wild, while the logical relation we build for it can be used to reason about non-trivial properties, such as contextual equivalence and contextual approximation of programs. Our development has been fully formalised in the Coq proof assistant. Dariusz Biernacki, Maciej Piróg, Piotr Polesiuk, Filip Sieczkowski |
Proc. ACM Program. Lang. | 2 |
| 2017 | Unifying Guarded and Unguarded Iteration
Sergey Goncharov 0001, Lutz Schröder, Christoph Rauch, Maciej Piróg |
FoSSaCS | 4 |
| 2017 | Backtracking with cut via a distributive law and left-zero monoidsabstractAbstract We employ the framework of algebraic effects to augment the list monad with the pruning cut operator known from Prolog. We give two descriptions of the resulting monad: as the monad of free left-zero monoids, and as a composition via a distributive law of the list monad and the ‘unary idempotent operation’ monad. The scope delimiter of cut arises as a handler. Maciej Piróg, Sam Staton |
J. Funct. Program. | 1 |
| 2016 | String diagrams for free monads (functional pearl)abstractWe show how one can reason about free monads using their universal properties rather than any concrete implementation. We introduce a graphical, two-dimensional calculus tailor-made to accommodate these properties. Maciej Piróg, Nicolas Wu |
ICFP | 1 |
| 2016 | Tabling with Sound Answer SubsumptionabstractAbstract Tabling is a powerful resolution mechanism for logic programs that captures their least fixed point semantics more faithfully than plain Prolog. In many tabling applications, we are not interested in the set of all answers to a goal, but only require an aggregation of those answers. Several works have studied efficient techniques, such as lattice-based answer subsumption and mode-directed tabling, to do so for various forms of aggregation. While much attention has been paid to expressivity and efficient implementation of the different approaches, soundness has not been considered. This paper shows that the different implementations indeed fail to produce least fixed points for some programs. As a remedy, we provide a formal framework that generalises the existing approaches and we establish a soundness criterion that explains for which programs the approach is sound. Alexander Vandenbroucke, Maciej Piróg, Benoit Desouter, Tom Schrijvers |
Theory Pract. Log. Program. | 2 |
| 2015 | Modules Over Monads and Their AlgebrasabstractModules over monads (or: actions of monads on endofunctors) are structures in which a monad interacts with an endofunctor, composed either on the left or on the right. Although usually not explicitly identified as such, modules appear in many contexts in programming and semantics. In this paper, we investigate the elementary theory of modules. In particular, we identify the monad freely generated by a right module as a generalisation of Moggi's resumption monad and characterise its algebras, extending previous results by Hyland, Plotkin and Power, and by Filinski and Stovring. Moreover, we discuss a connection between modules and algebraic effects: left modules have a similar feeling to Eilenberg–Moore algebras, and can be seen as handlers that are natural in the variables, while right modules can be seen as functions that run effectful computations in an appropriate context (such as an initial state for a stateful computation). Maciej Piróg, Nicolas Wu, Jeremy Gibbons |
CALCO | 1 |
| 2010 | A systematic derivation of the STG machine verified in CoqabstractShared Term Graph (STG) is a lazy functional language used as an intermediate language in the Glasgow Haskell Compiler (GHC). In this article, we present a natural operational semantics for STG and we mechanically derive a lazy abstract machine from this semantics, which turns out to coincide with Peyton-Jones and Salkild's Spineless Tagless G-machine (STG machine) used in GHC. Unlike other constructions of STG-like machines present in the literature, ours is based on a systematic and scalable derivation method (inspired by Danvy et al.'s functional correspondence between evaluators and abstract machines) and it leads to an abstract machine that differs from the original STG machine only in inessential details. In particular, it handles non-trivial update scenarios and partial applications identically as the STG machine. Maciej Piróg, Dariusz Biernacki |
Haskell | 1 |