On the semantics of static exception handling
Abstract
We study an idealized programming language (lambda-exn) that features a static variant of ML-like exception handling. We present three different kinds of semantics: an operational semantics, based on a quasi term-rewriting system that specifies a completely deterministic evaluation strategy; a reduction semantics, based on lambda-calculus-like reduction relations that satisfy the Church-Rosser property; a denotational semantics, based on call-by-value continuation passing. We prove that these three semantics coincide on programs.