The SCSM formalism allows to define event driven synchronous systems by means of expressions formed by sum, product and restriction operators applied to non-deterministic sequential machines. Deterministic expressions are obtained through global product restrictions, which correlate transitions of non-deterministic components with states of other components. SCSM is usefull as denotation domain for synchronous system description languages, especially for models concerning reactive systems. Introduction A reactive system is a system which interacts permanently with its environment. A typical environment consists of many physical objects, thus the structure of a reactive system is expected to be highly parallel in nature. The formal semantics of a general system description language for reactive systems should therefore be based on a model of concurrency like PetriNets, CCS or process algebras. However, highly parallel in nature does not necessairely mean highly disributed. In the real environment of a reactive system one will always find groups of objects which have to be controlled with respect to a common local time. The control of such a local group can usefully be specified by a subsystem consisting of a set of synchronously cooperating processes. The SCSM formalism adresses the formal description of such synchronous subsystems which in the following will be called clusters. A cluster generally represents a sequential subsystem of a distributed reactive system. The parallellism of a cluster's components is expressed through the respective orthogonality of the component's state spaces. An occurring event for a cluster's component leads through generated software events to transitions of other components. The occurring chain reaction is always considered as instantaneous, i.e. a temporal atomic state transition of the cluster. Instantaneous interaction mechanisms are in fact the basic ingredients of several well known synchronous system description languages: ESTEREL[1], LUSTRE[6], SIGNAL[11], STATECHARTS[13]. Many questions related to safety and reliability are much easier to treat in synchronous systems than in concurrent ones. However, the formal semantics of the cited synchronous languages is more complex and difficult to understand than expected from the evident intuitive meaning of particular system descriptions. The seemingly unneccessary complexity of the defined semantic functions is partly a consequence of the adopted traditional way of language development,
[1]
Nicolas Halbwachs,et al.
LUSTRE: A declarative language for programming synchronous systems*
,
1987
.
[2]
J. R. Cameron.
The modelling phase of JSD
,
1988
.
[3]
Andrzej Blikle,et al.
Denotational Engineering or from Denotations to Syntax
,
1987,
VDM Europe.
[4]
Albert Benveniste,et al.
programmi language and its
,
2001
.
[5]
Paul Le Guernic,et al.
SIGNAL: A declarative language for synchronous programming of real-time systems
,
1987,
FPCA.
[6]
David Lorge Parnas,et al.
On synchronization in hard-real-time systems
,
1988,
CACM.
[7]
Samuel Eilenberg,et al.
Automata, languages, and machines. A
,
1974,
Pure and applied mathematics.
[8]
David Harel,et al.
Statecharts: A Visual Formalism for Complex Systems
,
1987,
Sci. Comput. Program..
[9]
Gérard Berry,et al.
The ESTEREL Synchronous Programming Language and its Mathematical Semantics
,
1984,
Seminar on Concurrency.
[10]
Amir Pnueli,et al.
On the Formal Semantics of Statecharts (Extended Abstract)
,
1987,
LICS.
[11]
Raymond T. Boute,et al.
Systems semantics: principles, applications, and implementation
,
1988,
TOPL.