date/vreme: 22/12/2023, 12h

venue/mesto: NTP 418 (IV floor)

Speaker / Predavač

Prof. Nobuko Yoshida, Strachey Professor of Computing, University of Oxford, UK

https://www.cs.ox.ac.uk/people/nobuko.yoshida https://mrg.cs.ox.ac.uk (home page)

Title / Naslov:

Session-based programming and verification

Abstract / Sažetak:

This talk first gives a short introduction of multiparty session types — those who do not know session types, but are interested in applications of session types are very welcome.

Rust is a modern systems language focused on performance and reliability. Complementing Rust's promise to provide "fearless concurrency", developers frequently exploit asynchronous message passing. Unfortunately, sending and receiving messages in an arbitrary order to maximise computation-communication overlap (a popular optimisation in message-passing applications) opens up a Pandora's box of subtle concurrency bugs.

To guarantee deadlock-freedom by construction, we present Rumpsteak: a new Rust framework based on multiparty session types. Previous session type implementations in Rust are either built upon synchronous and blocking communication and/or are limited to two-party interactions. Crucially, none support the arbitrary ordering of messages for efficiency.

Rumpsteak instead targets asynchronous async/await code. Its unique ability is allowing developers to arbitrarily order send/receive messages while preserving deadlock-freedom. For this, Rumpsteak incorporates two recent advanced session type theories: (1) k-multiparty compatibility (k-MC), which globally verifies the safety of a set of participants, and (2) asynchronous multiparty session subtyping, which locally verifies optimisations in the context of a single participant.


Back