Published June 15, 2021 | Version 1
Conference paper Open

Prioritise the Best Variation

  • 1. University of Edinburgh
  • 2. University of Glasgow

Description

Binary session types guarantee communication safety and session fidelity, but alone they cannot rule out deadlocks arising from the interleaving of different sessions. In Classical Processes (CP) [53]—a process calculus based on classical linear logic—deadlock freedom is guaranteed by combining channel creation and parallel composition under the same logical cut rule. Similarly, in Good Variation (GV) [3954]—a linear concurrent lambda-calculus—deadlock freedom is guaranteed by combining channel creation and thread spawning under the same operation, called fork. In both CP and GV, deadlock freedom is achieved at the expense of expressivity, as the only processes allowed are tree-structured. Dardha and Gay [19] define Priority CP (PCP), which allows cyclic-structured processes and restores deadlock freedom by using priorities, in line with Kobayashi and Padovani [3444]. Following PCP, we present Priority GV (PGV), a variant of GV which decouples channel creation from thread spawning. Consequently, we type cyclic-structured processes and restore deadlock freedom by using priorities. We show that our type system is sound by proving subject reduction and progress. We define an encoding from PCP to PGV and prove that the encoding preserves typing and is sound and complete with respect to the operational semantics.

Files

KD21.pdf

Files (400.0 kB)

Name Size Download all
md5:2a84d70fb656090096110d1cf021cad2
400.0 kB Preview Download

Additional details

Funding

European Commission
BEHAPI - Behavioural Application Program Interfaces 778233