Abstract. Modularity is an important pragmatic aspect of semantic descriptions. In denotational semantics, the issue of modularity has received much attention, and appropriate abstractions have been introduced, so that definitions of semantic functions may be independent of the details of how computations are modelled. In structural operational semantics (SOS), however, this issue has largely been neglected, and SOS descriptions of programming languages typically exhibit rather poor modularity-for instance, extending the described language may entail a complete reformulation of the description of the original constructs. A proposal has recently been made for a modular approach to SOS, called MSOS. The basic definitions of the Modular SOS framework are recalled here, but the reader is referred to other papers for a full introduction. This paper focusses on illustrating the applicability of Modular SOS, by using it to give a description of a sublanguage of Concurrent ML (CML); the transition rules for the purely functional constructs do not have to be reformulated at all when adding references and/or processes. The paper concludes by comparing the MSOS description with previous operational descriptions of similar languages. The reader is assumed to be familiar with conventional SOS, with the concepts of functional programming languages such as Standard ML, and with fundamental notions of concurrency.
Conventional SOSIn the conventional SOS framework [23,24] programs (and all their constituent phrases) are generally modelled as labelled transition systems:where Γ is the set of configurations, T ⊆ Γ is the set of terminal configurations, is the set of labels, and −→ ⊆ Γ × × Γ is the transition relation. For configurations γ, γ ∈ Γ and label α ∈ , the assertion that (γ, α, γ ) is in the transition relation is written γ The main characteristic feature of SOS is that transition relations are specified inductively, according to the abstract syntax grammar, by giving sets of inference rules where the syntactic components of the initial configurations in the premises of a rule are generally components of that in the conclusion. Other formulae, such as equations, may be used as side-conditions on rules (although for notational convenience one may list them with the premises). The intended transition relation is the least such relation that is closed under the given inference rules.
1There are two distinct styles of SOS. In so-called small-step SOS, each transition in a computation generally corresponds to an indivisible bit of information processing, such as adding two computed numbers, or assigning a computed number to a variable. In big-step SOS, also known as Natural Semantics [10], a (terminating) computation is a single transition leading directly to a terminal configuration, corresponding to the composition of the computations of its constituent phrases. The big-step style can be formally regarded as a special case of the small-step style. The two styles may also be mixed in the same description. e.g., big-step for e...