On Reconciling Concurrency, Sequentiality and Determinacy for Reactive Systems-A Sequentially Constructive Circuit Semantics for Esterel - Schulz-Rosengarten, Alexander; Smyth, Steven; von Hanxleden, Reinhard; Mendler, Michael (2018 18th International Conference on Application of Concurrency to System Design (ACSD), 2018)
A classic challenge in designing reactive systems is how to reconcile concurrency with determinacy. Synchronous languages, such as Esterel, SyncCharts or SCADE, resolve this by providing a semantics that does not depend on run-time scheduling decisions. Esterel's circuit semantics is grounded in physics: An Esterel program is considered valid (constructive) iff it corresponds to a delay-insensitive circuit. The circuit semantics provides on the one hand a mathematically grounded semantics, based on constructive logic, on the other hand it gives a direct path to a data-flow style software implementation. However, Esterel's constructive semantics entails a rather restricted regime for handling sequential accesses to shared data. Thus many programs are rejected as being non-constructive, even though they have a very natural, determinate interpretation. We here present a sequentially constructive circuit semantics (SCC) that lifts this restriction, by distinguishing sequential and concurrent execution contexts. This permits an imperative style familiar to programmers versed in C, for example, without leaving the sound physical foundation of synchronous programming.