Direct Semantics and Exceptions Define Jumps and Coroutines

Abstract Direct semantics and continuation semantics are the two main styles of denotational semantics. Direct semantics is the simpler style but cannot define the semantics of jumps and other sequencers. This paper shows that, with the addition of exceptions, direct semantics can define sequencers. In contrast to the use of continuation semantics, nothing need be added to the semantics of commands unconnected with sequencers. Since exceptions can be defined in terms of the λ-calculus nothing need be added to the foundations of semantics.