On the Expressive Power of User-Defined Effects: Effect Handlers, Monadic Reflection, Delimited Control episode artwork

EPISODE · Dec 13, 2017 · 18 MIN

On the Expressive Power of User-Defined Effects: Effect Handlers, Monadic Reflection, Delimited Control

from International Conference on Functional Programming 2017

Ohad Kammar, University of Oxford, UK, gives the second presentation in the fourth panel, Effects, in the ICFP 2017 conference. Co-written by Yannick Forster (Saarland University, Germany and University of Cambridge, UK), Sam Lindley (University of Edinburgh). We compare the expressive power of three programming abstractions for user-defined computational effects: Bauer and Pretnar's effect handlers, Filinski's monadic reflection, and delimited control without answer-type-modification. This comparison allows a precise discussion about the relative expressiveness of each programming abstraction. It also demonstrates the sensitivity of the relative expressiveness of user-defined effects to seemingly orthogonal language features. We present three calculi, one per abstraction, extending Levy's call-by-push-value. For each calculus, we present syntax, operational semantics, a natural type-and-effect system, and, for effect handlers and monadic reflection, a set-theoretic denotational semantics. We establish their basic meta-theoretic properties: safety, termination, and, where applicable, soundness and adequacy. Using Felleisen's notion of a macro translation, we show that these abstractions can macro-express each other, and show which translations preserve typeability. We use the adequate finitary set-theoretic denotational semantics for the monadic calculus to show that effect handlers cannot be macro-expressed while preserving typeability either by monadic reflection or by delimited control. We supplement our development with a mechanised Abella formalisation.

Episode metadata supplied by the publisher feed · Published Dec 13, 2017

Embed this episode

NOW PLAYING

On the Expressive Power of User-Defined Effects: Effect Handlers, Monadic Reflection, Delimited Control

0:00 18:19

No transcript for this episode yet

We transcribe on demand. Request one and we'll notify you when it's ready — usually under 10 minutes.

No similar episodes found.

No similar podcasts found.

Frequently Asked Questions

How long is this episode of International Conference on Functional Programming 2017?

This episode is 18 minutes long.

When was this International Conference on Functional Programming 2017 episode published?

This episode was published on December 13, 2017.

Can I download this International Conference on Functional Programming 2017 episode?

Yes. Use the download control on the episode player to save the publisher-provided media file.
URL copied to clipboard!