Choreographic programming is a concurrent paradigm in which a single global program called a choreography describes behavior across an entire distributed network of participants. Choreographies are easier to reason about than separate programs running in parallel, and choreographic programming systems can check for deadlocks statically. We present MultiChor, a library for writing and running choreographies as monadic values in Haskell. Unlike prior Haskell implementations, MultiChor does not require excess communication to handle Knowledge-of-Choice. Unlike all prior general-purpose choreographic languages, MultiChor can express choreographies that are polymorphic over the number of participants.
翻译:编排编程是一种并发范式,其中称为编排的单一全局程序描述整个分布式参与者网络的行为。编排比并行运行的独立程序更易于推理,且编排编程系统能够静态检查死锁。本文提出MultiChor——一个在Haskell中将编排作为单子值编写和运行的函数库。与以往的Haskell实现不同,MultiChor无需通过额外通信处理选择知识问题。相较于所有先前的通用编排语言,MultiChor能够表达在参与者数量上具有多态性的编排。