Structural operational semantic specifications come in different styles: small-step and big-step. A problem with the big-step style is that specifying divergence and abrupt termination gives rise to annoying duplication. We present a novel approach to representing divergence and abrupt termination in big-step semantics using status flags. This avoids the duplication problem, and uses fewer rules and premises for representing divergence than previous approaches in the literature.
Nakata and Uustalu also give coinductive big-step semantics for @cite_38 (denoting the external behaviour of a communicating agent in concurrency theory @cite_29 ) as well as interleaving and concurrency @cite_26 . These lines of work provide a more general way of giving and reasoning about all possible outcomes of a program than the committed-choice non-determinism that we considered in Sect. . It is, however, also somewhat more involved to specify and work with.
@cite_38 @cite_29 @cite_26
1990062016 1517759553
We look at the operational semantics of languages with interactive I O through the glasses of constructive type theory. Following on from our earlier work on coinductive trace-based semantics for While [17], we define several big-step semantics for Whil e with interactive I O, based on resumptions and termination-sensitive weak bisimilarity. These require nesting inductive definitions in coinductive definitions, which is interesting both mathe matically and from the point-of-view of implementation in a proof assistant. After first defining a basic semantics of statements in terms o f resumptions with explicit internal actions (delays), we introduce a semantics in terms of delay-free resumptions that essentially removes finite sequences of delays on the fly from those resumptions th at are responsive. Finally, we also look at a semantics in terms of delay-free resumptions supplemented with a silent divergence option. This semantics hinges on decisions between convergence and divergence and is only equivalent to the basic one classically. We have fully formalized our development in Coq. Publisher Summary Most of the computing agents with which computing science is concerned exhibit behavior that is not just the computation of a mathematical function of their inputs but rather a possibly infinite sequence of communications with their environment. The mathematics of processes promises to unify the behavioral study of computing agents, both hardware and software. This chapter describes the concepts that may be useful in modeling the behavior of intercommunicating agents, together with some examples. It is becoming clear that informal (but rigorous) proofs about communicating systems, analogous to proofs about serial programs based on the assertion technique introduced by Floyd and others, are considerably harder to express.