Choreographies as Macros

📅 2025-05-25
🏛️ Electronic Proceedings in Theoretical Computer Science
📈 Citations: 0
Influential: 0
📄 PDF
🤖 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.

Technology Category

Application Category

📝 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.
Problem

Research questions and friction points this paper is trying to address.

Concurrent programming requires precise send-receive pairing to prevent deadlock
Choreographic programming simplifies system specification but lacks implementations
Racket macros enable efficient development of choreographic language Choret
Innovation

Methods, ideas, or system contributions that make the work stand out.

Uses Racket for choreographic language development
Leverages Racket macros for infrastructure reuse
Enhances functionality and correctness via macros
🔎 Similar Papers
No similar papers found.
A
Alexander Bohosian
Department of Computer Science and Engineering, University at Buffalo, SUNY, Buffalo, NY , USA
Andrew K. Hirsch
Andrew K. Hirsch
University at Buffalo, SUNY
choreographic programmingproof theorytype systemsauthorizationinformation flow