Effectful composition in natural language semantics

Dylan Bumford (UCLA) & Simon Charlow (Yale)

Abstract: Computer programs are often factored into pure components—simple, total functions from inputs to outputs—and components that may have side effects—errors, changes to memory, parallel threads, abortion of the current command, etc. In this course, we make the case that human languages are similarly organized around the give and pull of pure and effectful processes, and we’ll aim to show how denotational techniques from computer science can be leveraged to support elegant and illuminating semantic analyses of natural language phenomena.

The slides below are from the last time this course was taught, at ESSLLI 2022. They will eventually be replaced with NASSLLI 2025 versions.

A short book based on this material is submitted to Cambridge University Press, and can be accessed here. (Let us know of any errata!)

Day 1: Introducing functors (slides)

Day 2: Multiple functors, automating composition (slides)

Day 3: From functors to applicative functors (slides, code)

Day 4: From applicatives to monads (slides)

Day 5: Monads decomposed (slides)