Research interests

It is too hard to build trustworthy software systems using conventional systems APIs. I work on higher-level, language-based abstractions for programming that better address important cross-cutting concerns: security, extensibility, persistence, distribution.

Selected recent publications

New security properties related to referential integrity and persistence can be soundly enforced by a type system.

Distributed transactions can be sped up by giving clients time-limited invariants on state and computation.

Diagnosing maximum-likelihood program error locations from constraint system failures.

Pattern matching that verifies exhaustiveness and redundancy can coexist with data abstraction and subtyping.

Program analysis and synthesis enable seamlessly moving data and functionality between app and database servers.

Current Projects

[Show courses taught]