2024/12/03 by Mako Bates, Shun Kashiwa, Syed Jafri +3 · 2 voices · 2 citations
Computer Science · Engineering · Psychology · #Diversity and Impact of Dance #Human Motion and Animation #Human Pose and Action Recognition #cs.PL
paper · pdf · doi:10.1145/3729296
openalex created_date 2024/12/06 · openalex publication_date 2025/06/10 · openalex updated_date 2026/07/28
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.