🤖 AI Summary
Big-step semantics struggles to characterize divergent (non-terminating) computations, whereas small-step semantics precisely models them at the cost of verbose rules and excessive state detail. This paper introduces *big-stop semantics*: an extension of standard big-step semantics that uniformly handles both terminating and divergent evaluations via a purely inductive definition—without coinduction or auxiliary state components. Its key contribution is achieving strong equivalence with the reflexive-transitive closure of small-step semantics using only a minimal set of additional inference rules. Thus, it retains the conceptual simplicity and conciseness of big-step semantics while matching its expressive power for reasoning about divergence. Grounded in standard type-theoretic and operational semantic paradigms, the framework has been successfully applied to PCF, effectful variants, and imperative languages, enabling precise yet succinct characterization of program behavior—including divergence.
📝 Abstract
As evident in the programming language literature, many practitioners favor specifying dynamic program behavior using big-step over small-step semantics. Unlike small-step semantics, which must dwell on every intermediate program state, big-step semantics conveniently jump directly to the ever-important result of the computation. Big-step semantics also typically involve fewer inference rules than their small-step counterparts. However, in exchange for ergonomics, big-step semantics give up power: Small-step semantics describes program behaviors that are outside the grasp of big-step semantics, notably divergence. This work presents a little-known extension of big-step semantics with inductive definitions that captures diverging computations without introducing error states. This big-stop semantics is illustrated for typed, untyped, and effectful variants of PCF, as well as a while-loop-based imperative language. Big-stop semantics extends the standard big-step inference rules with a few additional rules to define an evaluation judgment that is equivalent to the reflexive-transitive closure of small-step transitions. This simple extension contrasts with other solutions in the literature which sacrifice ergonomics by introducing many additional inference rules, global state, and/or less-commonly-understood reasoning principles like coinduction.