A monadic interpreter and type-and-effect checker
We present a concrete implementation in Haskell of a monadic framework that includes both a small-step interpreter and a type-and-effect checker for the corresponding language. Our approach separates the language syntax from the semantics of its effects. This design allows the interpreter to remain parametric over the underlying monad, while the static checker approximates effects independently of their concrete implementation.
The theoretical foundation of this framework—applied to a call-by-value lambda calculus with generic effects represented by operations that produce monadic values and are managed through handlers—was introduced in previous work, where the focus was on proving the soundness of the approach. In contrast, the present work leverages Haskell’s support for modular programming and monads to demonstrate that the framework is practically implementable and usable.
We illustrate the approach with examples using the monad of exceptions and the one of nondeterminism and expressions both with and without handlers.
Tue 30 JunDisplayed time zone: Brussels, Copenhagen, Madrid, Paris change
11:00 - 12:30 | |||
11:00 30mTalk | A monadic interpreter and type-and-effect checker FTfJP Stefano Raviola Universita' del Piemonte Orientale, Paola Giannini University of Eastern Piedmont, Francesco Dagnino University of Genoa | ||
11:30 30mTalk | A Typestate Approach to Purpose-aware Programming FTfJP Joan Montas University of Massachusetts, Lowell, Samuel Dodson University of Massachusetts, Lowell, Anitha Gollamudi University of Massachusetts Lowell, Matteo Cimini University of Massachusetts Lowell Pre-print | ||
12:00 30mTalk | Formal Semantics and Type System for Vega Data Transformations FTfJP Pre-print | ||