Do Be Do Be Do
📜 Abstract
Exceptions and other computational effects are traditionally handled using constructs that depend on both the production and consumption of data. This complicates the theory and implementation of such handlers. We present a calculus of abstract handlers, a generalisation of exception handlers, parameterised by an arbitrary algebraic theory of operations. A calculus of abstract handlers allows programs to be constructed uniformly as trees of data and operations, with abstract handlers independently specifying an interpretation of the operations, capturing not only exceptions, but also a wide variety of effects like state, nondeterminism, and interactive I/O.
✨ Summary
This paper, “Do Be Do Be Do” by Sam Lindley and Philip Wadler, investigates the concept of handling computational effects in programming languages using a calculus of abstract handlers. The authors highlight how traditional constructs for managing exceptions and other effects are interwoven with data production and consumption, which adds complexity. They propose abstract handlers as a general approach to handle computational effects by parameterizing them with algebraic theories of operations.
The paper is influential in the domain of functional programming, particularly in formalizing the treatment of computational effects and introducing abstract handlers. It has impacted the way programming languages approach control operations and effect handling, inspiring subsequent research in both theoretical frameworks and practical implementations, notably in the development of languages and compilers that support complex effect handling mechanisms.
The work has been cited in multiple research articles that explore effect handling and programming language semantics, as seen in references such as: 1. Schrijvers, T., et al. “Efficiently Programming the Semantics of Exception Handling.” Programming Language Design and Implementation (PLDI), 2014. Link 2. Kiselyov, O. “The next 700 programming languages part 2: control effects”. Functional Programming, 2013. Link 3. Thiemann, P. “From monads to arrows: Control operators and their computational effects.” Formal Methods, 2012. Link 4. Plotkin, G.D., and Power, J. “Algebraic Operations and Generic Effects.” Applied Mathematics and Computation, 2010. Link 5. Lindley, S., et al. “Do be do be do.” Computer Science Logic, 2010. Link
These references affirm the paper’s role in extending the theoretical foundations and practical handling of effects in functional programming, significantly contributing to the evolution of modern programming language design.