一句话:提出 conclave、多位置值与 census 多态,使库级编排编程的分支无需冗余通信且可跨宿主语言移植。
库级编排编程(如 HasChor)易与主流语言集成,但存在条件分支需要额外通信、依赖宿主语言特性(如 monad)以及缺乏实现真实分布式应用所需编程模式等局限。本文对库级编排编程做出三项贡献:一是提出并形式化 conclave 与多位置值(multiply-located values),在不引入冗余通信的前提下支持高效条件分支;二是提出 census 多态,用于对编排中参与者数量进行抽象;三是给出一种不依赖 monad 的宿主语言中实现库级编排编程的设计模式。作者通过 Haskell、Rust 和 TypeScript 中的实现展示了这些贡献。
Choreographic programming (CP) is a paradigm for implementing distributed systems that uses a single global program to define the actions and interactions of all participants. Library-level CP implementations, like HasChor, integrate well with mainstream programming languages but have several limitations: Their conditionals require extra communication; they require specific host-language features ( e.g ., monads); and they lack support for programming patterns that are essential for implementing realistic distributed applications. We make three contributions to library-level CP to specifically address these challenges. First, we propose and formalize conclaves and multiply-located values, which enable efficient conditionals in library-level CP without redundant communication. Second, we propose census polymorphism, a technique for abstracting over the number of participants in a choreography. Third, we introduce a design pattern for library-level CP in host languages without support for monads. We demonstrate these contributions via implementations in Haskell, Rust, and TypeScript.
@article{paperbot3136,
title = {Efficient, Portable, Census-Polymorphic Choreographic Programming},
author = {Mako Bates and Shun Kashiwa and Syed Jafri and Gan Shen and Lindsey Kuper and Joseph P. Near},
journal = {Proceedings of the ACM on Programming Languages},
volume = {9},
number = {PLDI},
year = {2025},
doi = {10.1145/3729296}
}