The following content has been provided by the University of Erlangen-Nürnberg.
Thank you. Thank you very much. It's a pleasure to be here. As you've heard, I'm from computer
science theory and background in type theory, concurrency theory, and I've always been fascinated
by applications of concurrency theory, particularly in engineering context. And here is an issue
that I came across quite early in my career research and it has fascinated me ever since.
It's an issue that arises in synchronous programming languages, the compilation of synchronous
programming languages and execution of synchronous programming languages, a question of semantics.
And it's, I would argue arguably, the single most subtle issue in synchronous programming.
Synchronous programming is about programming mellia automata as such, theoretically not
so terribly tricky, but if you compose mellia automata and you create cycles, you end up
in causality cycles that are not easy to resolve. And you need mathematical techniques that
are beyond the standard techniques that we normally teach students in computer science,
techniques from logic and concurrency theory, game theory that can help, or I propose, can
help to resolve the problem, to give an idea, to attack it.
So right into the heart of the matter, what is the issue? It's synchronous programming,
I said, it's high level programming of mellia machines. And the key mathematical problem
you have to solve in a concurrent situation is to solve fixed points, fixed point equations
of, and here is the alarm bell that should be ringing, fixed points of non-monotonic
functionals. Standard theory, computer science theory says fixed points exist uniquely if
you have monotonic functions and lattices, but here it's not monotonic, so fixed points
do not have to exist, they don't have to be unique.
Not surprisingly, if you look into the engineering literature and the development of the semantics
of synchronous programming, you see a profusion of different proposals of how to organize
the interaction of cyclically connected mellia machines to give more or less coherent compositional
scalable semantics. You have a confusion of different dialects of synchronous programming,
ways of solving these cycles, and this is, there's another unique setting in which we
could address these, and the proposal that I have, and this is something I came up a
couple of years ago, is to use game theoretic approach which is quite modern, it's very
old in mathematics and logic particularly, but it's fairly new to be used in computer
science to solve recursive situations, self-references, particularly in interactive situations. It
introduces polarity into the semantics and this is what you need to resolve the causality
between a system and its environment, so it's quite natural. It's surprising that it comes
so late actually in the development of theory, of computer science.
The proposal I'm going to take you through is a way to try to understand the existing
semantics from a common ground, the game theoretic point of view, and I will show you in the
course of those following slides how we can recover the semantics of Gérard Berry of
STL, or imperative synchronous programming, or the state chart proposal, the semantics
for state charts proposed by Puglian-Charlotte in the 90s, and a recent proposal, sequentially
constructive charts by von Hanks-Leden, how to recover them uniformly from a common perspective
through games. Of course, this gives a playground to develop even more solutions, but now in
a way so you can compare them, hopefully, systematically, study different interpretations
and justify them in a way. Here is the plan, the roadmap. We start with
a brief introduction to synchronous programming up front. Then I will show you how the reaction
between synchronous components ends up being a fixed point, why this fixed point is tricky,
and then come up with a proposal to treat this as a game. We will then study four different
ways of fixing the game, playing the game, giving four different semantics, two of which
are well known, actually three of which are quite well known, you will see, and then I'll
finally come to this new proposal that we are working on at the moment, which is just
to semantically underpin this proposal which is called sequentially constructiveness for
synchronous programming language, SRL. That is quite a recent proposal by von Hanks-Leden.
Presenters
Prof. Michael Mendler
Zugänglich über
Offener Zugang
Dauer
00:56:49 Min
Aufnahmedatum
2017-03-17
Hochgeladen am
2017-03-17 17:16:50
Sprache
de-DE
The synchronous model of programming, which emerged in the 1980ies and has led to the development of well-known languages such as Statecharts, Esterel, Signal, Lustre, has made the programming of concurrent systems with deterministic and bounded reaction a routine exercise. However, validity of this model is not for free. It depends on the Synchrony Hypothesis according to which a system is invariably faster than its environment. Yet, this raises a tangled compositionality problem. Since a node is in the environment of the every other node, it follows that each node must be faster than every other and hence faster than itself!
This talk presents a game-theoretic semantics of boolean logic defining the constructive interpretation of step responses for synchronous languages. This provides a coherent semantic framework encompassing both non-deterministic Statecharts (as per Pnueli & Shalev) and deterministic Esterel. The talk sketches a general theory for obtaining different notions of constructive responses in terms of winning conditions for finite and infinite games and their characterisation as maximal post-fixed points of functions in directed complete lattices of intensional truth-values.