🤖 AI Summary
Existing choreographic languages lack support for dynamically determining and coordinating the execution location of decision-making computations across distributed nodes. This paper introduces λ_QC—the first compiled coroutine programming language supporting first-class process names and location-set polymorphism. Methodologically, it formalizes location-set polymorphism and first-class process names within a unified type system; supports algebraic and recursive data types, along with cross-location value passing; and mechanizes deadlock-freedom verification in Rocq. By extending type inference and the choreographic compilation framework, λ_QC guarantees that compiled node-local programs satisfy communication safety and deadlock freedom. The contributions include: (i) the first type-theoretic integration of location-set polymorphism and first-class process names; (ii) a verified compilation pipeline ensuring end-to-end correctness; and (iii) a practical, strongly typed foundation for reliable distributed coroutine programming.
📝 Abstract
Choreographic programming is a promising new paradigm for programming concurrent systems where a developer writes a single centralized program that compiles to individual programs for each node. Existing choreographic languages, however, lack critical features integral to modern systems, like the ability of one node to dynamically compute who should perform a computation and send that decision to others. This work addresses this gap with $lambda_{QC}$, the first typed choreographic language with emph{first class process names} and polymorphism over both types and (sets of) locations. $lambda_{QC}$ also improves expressive power over previous work by supporting algebraic and recursive data types as well as multiply-located values. We formalize and mechanically verify our results in Rocq, including the standard choreographic guarantee of deadlock freedom.