PIPages
Labs

Andrew Hirsch

University at Buffalo, NY·Computer Science

Concurrent and distributed programs, where many components run at once and exchange messages, are notoriously hard to get right. If components disagree about the communication protocol (the agreed order and type of messages), the result can be errors that are very difficult to debug.

Fields

Computer Science

Mathematics & Statistics

Topics

choreographic programming

open choreographies

session types

Grants
1 known grant, through Aug 2028

What they work on

  1. Develop open choreographies, choreographic programs whose co-designed components can communicate safely with independently written, off-the-shelf software.
  2. Design scheduled session types, a new type discipline describing the communication protocols of concurrent software, and prove that well-typed programs cannot have protocol errors.
  3. Automatically synthesize session types from a choreography so programmers gain protocol-safety guarantees without having to write or understand session types.

More about the research

Choreographic programming addresses this by letting developers write the whole interaction as a single program, from which each component's code is generated, so protocol errors cannot occur. The catch is that every component must be written together, which rules out using off-the-shelf software. This project develops open choreographies that can safely talk to independently written programs.

Why it matters

Software developers building distributed and concurrent systems could write programs that are guaranteed free of communication-protocol errors while still integrating with existing, independently written software. This could make correct distributed systems fit into standard development workflows without requiring programmers to master specialized type theory.

Known grants

From NIH and NSF research grants. Labs often have other funding we can't see.

SHF: Small: Open Choreographies via Session Types

NSF · Sep 2025 – Aug 2028

Closest labs

Milijana Surbatovich

University of Maryland, MD·Computer Science·Early-career

Develop the first formal model of an intermittence-safe operating system, with defined abstraction layers that separate tiers of trust and allow each component to be verified on its own.

Yuyan Bao

Augusta University, GA·Computer Science

Develop verification methodologies for reasoning about function values — functions handled as data — in industrial programming languages, using first-order assertions and auxiliary logical variables suited to automated reasoning.

Tej Chajed

University of Wisconsin-Madison, WI·Computer Science·Early-career

Define specifications for data-format compatibility that require new code to correctly handle any data the previous software version might have produced.

The school

University at Buffalo: 32 labs on PI Pages, $542M a year on research, 316 research doctorates a year.

More about University at Buffalo

Reach out

A start for your email. Fill in the brackets.