Shen, G. (CSE) – Library-Level Choreographic Programming

Modern software increasingly relies on distributed systems to provide accessible, scalable,
and reliable services. Choreographic programming brings a global perspective to distributed
system development: programmers write a single program that describes the behavior of a
whole system, and a compiler projects that global description into local programs run by each
node. By making distributed control flow explicit, choreographic programming can rule out
important classes of errors, including deadlocks. This dissertation investigates library-level
choreographic programming, an approach that embeds choreographic abstractions in existing
host languages rather than implementing them as standalone languages. The central claim
is that the library approach can retain the safety and global reasoning principles of chore-
ographic programming while taking advantage of the host language’s features, tools, and
ecosystem. First, we present HasChor, a first-of-its-kind library-level choreographic program-
ming language in Haskell, built using freer monads. Next, we generalize the design underlying
HasChor to algebraic effects, giving library-level implementations in Agda and OCaml. Fi-
nally, we present Parkour, a backward-compatible extension to HasChor that adds a construct
for expressing parallel behavior in choreographies. Together, these systems show that chore-
ographic programming can be implemented, generalized, and extended at the library level,
making global programming techniques available within practical host-language settings.
Event Host: Gan Shen, Ph.D. Candidate, Computer Science & Engineering
Advisor: Lindsey Kuper
Zoom: https://ucsc.zoom.us/j/93790633483?pwd=Jg8JlISsrwjLBaQIi1KdHk36bNMIv7.1
Passcode: 902041