🤖 AI Summary
Precise matching of send/receive operations in concurrent programming remains a critical challenge for deadlock avoidance; while orchestration programming simplifies behavioral modeling, existing implementations are scarce and prohibitively expensive to develop. This paper introduces Choret—a lightweight orchestration-oriented domain-specific language (DSL) built atop Racket’s macro system. Choret pioneers the direct encoding of typed communication protocols as extensible syntax macros, thereby decoupling orchestration logic from runtime infrastructure. Its design leverages static syntactic expansion to automatically verify communication compatibility, ensuring semantic correctness at compile time. Evaluation demonstrates that Choret reduces prototype development time for orchestration languages by an order of magnitude, while natively integrating with Racket’s toolchain—including debuggers—thereby substantially lowering the barrier to constructing domain-specific orchestration languages.
📝 Abstract
Concurrent programming often entails meticulous pairing of sends and receives between participants to avoid deadlock. Choreographic programming alleviates this burden by specifying the system as a single program. However, there are more applications than implementations of choreographies, and developing new implementations takes a lot of time and effort. Our work uses Racket to expedite building a new choreographic language called Choret. Racket has a powerful macro system which allows Choret to reuse much of its infrastructure for greater functionality and correctness.