Section: New Results
Multiparty Reactive Sessions
Synchronous reactive programming (SRP) is a well-established programming paradigm whose essential features are logical instants, broadcast events and event-based preemption. This makes it an ideal vehicle for the specification and analysis of reactive systems, and indeed several programming languages and frameworks based on SRP have been put forward. On the other hand, session-based concurrency is the model of concurrent computation induced by session types, a rich typing discipline designed to specify the structure of interactions. In a nutshell, session types describe communication protocols between two or more participants by specifying the sequencing of messages along communication channels, as well as their functionality (sender, receiver and type of carried data). Originally conceived as a static analysis technique for an enhanced version of the -calculus, session types have been subsequently transferred to functional, concurrent, and object-oriented programming languages, and adapted to support run-time verification.
A combination of session-based concurrency and SRP features appears to be appropriate to specify and analyse communication-centric systems in which some components may have a reactive and/or timed behaviour. In joint work with colleagues from I3S and the University of Groningen, currently submitted, we study the integration of SRP and session-based concurrency. To this end, we propose a calculus for multiparty sessions enriched with features from SRP. In this calculus, protocol participants communicate by broadcast messages, have the ability to suspend themselves while waiting for an absent message, and may react to the presence of particular events by triggering alternative behaviours. We equip the calculus with a session type system which enforces expected session properties such as communication safety, protocol fidelity, and input lock freedom. This session type system departs significantly from existing ones: the interplay of classical, well-established assumptions of SRP with session-based constructs requires revisiting central notions of multiparty session types, such as those of global type, local type and projection.