We tackle the problem of statically ensuring that message-passing programs never run into deadlocks. We focus on concurrent functional programs governed by context-free session types, which can express rich tree-like structures not expressible in standard session types. We propose a new type system based on context-free session types: it enforces both protocol conformance and deadlock freedom, also for programs implementing cyclic communication topologies with recursion and polymorphism. We show how the priority-based approach to deadlock freedom can be extended to this expressive setting. We prove that well-typed concurrent programs respect their protocols and never deadlock.
翻译:我们致力于解决静态确保消息传递程序永不陷入死锁的问题。本文聚焦于受上下文无关会话类型约束的并发函数式程序,此类会话类型能够表达标准会话类型无法描述的丰富树状通信结构。我们提出了一种基于上下文无关会话类型的新型类型系统:该系统不仅强制协议一致性,同时确保死锁自由性,该特性对实现包含递归和多态性的循环通信拓扑结构的程序同样适用。我们展示了如何将基于优先级的死锁自由分析方法扩展至这一富有表达力的类型框架。通过理论证明,我们验证了良类型并发程序始终遵循其通信协议且永不发生死锁。