Event structures are a model of computational processes. They represent a process as a set of e'cent occurrences with relations to express how events causally depend on others. This paper introduces event structures, shows their relationship to Scott domains and Petri nets, and surveys their role in denotational semantics, both for modelling languages like CCS and CSP and languages with higher types. I n t r o d u c t i o n . Event structures are models of processes as events constrained by relations of consistency and enabling. Their study in denotational semantics first arose as a biproduct in the pioneering work of G.Kahn and G.Plotkin on some foundational questions in denotational semantics (See 1.5). The concrete data structures of Kahn and Plotkin were later realised to be closely related to confusionfree Petri nets (see part 3 and [NPW]) and this led to the more general definitions discussed here. Since then they have been developed as a model in their own right and for certain applications (e.g. see part 4) they are easier and less clumsy to use than Petri nets to which they are closely related however. These notes are intended to present the mathematical theory of event structures, show how they are related to Petri nets and Scott domains, and how they can be used to provide semantics to programming languages for parallel processes as welt as languages with higher types. A goal in working with event structures has been to develop a theory of concurrency which incorporates both the insights of C.A.Petri and D.S.Scott. To some extent this has been achieved. On the one hand, event structures consist of relations on events and bear a close relationship to Petri nets. On the other, the configurations or states of an event structure naturally reflect information about what events have occurred and determine a Scott domain of information. Because of this dual nature event structures stand as an intermediary between the theories Petri nets and denotational semantics, sharing ideas with both. As such they can serve a bridge between the two theories. For example the insight of Scott that computable functions ifiduce continuous functions on domains appears as a finiteness axiom on event structures (1.4), which can be readily interpreted for Petri nets, while the restriction of confusion-freeness on a Petri net translates to concreteness on a domain naturally associated with it (1.5, 3.3). There remains the curious mismatch noted in [NPW]: a computation which is described by an event structure, or Petri net, gives rise to a whole domain whereas usually in denotational semantics a computation denotes a single element of a domain. This indicates, I believe, that we are still some way from the comprehensive theory of events in computation envisaged in [W]. The notes are organised in four parts. The first introduces event structures and their relations to families of configurations and certain kinds of domains which are viewed as different presentations of essentially the same idea. It develops the framework in which event structures can be defined recursively. Here the closeness of event structures to domains has another pay-off. It is easy to adapt ideas from denotational semantics to provide a smooth framework for recursion. In parts 2 and 4 this work is extended to particular applications. In part 2, event structures are used to
[1]
Wolfgang Reisig,et al.
Processes of Place/Transition-Nets
,
1983,
ICALP.
[2]
Leslie Lamport,et al.
Time, clocks, and the ordering of events in a distributed system
,
1978,
CACM.
[3]
Jean-Yves Girard,et al.
The System F of Variable Types, Fifteen Years Later
,
1986,
Theor. Comput. Sci..
[4]
Peter Aczel,et al.
An Introduction to Inductive Definitions
,
1977
.
[5]
Kurt Lautenbach,et al.
Elements of General Net Theory
,
1979,
Advanced Course: Net Theory and Applications.
[6]
Henry G. Baker,et al.
Actors and Continuous Functionals
,
1978,
Formal Description of Programming Concepts.
[7]
Stephen D. Brookes,et al.
On the Relationship of CCS and CSP
,
1983,
ICALP.