I design, implement, and study programming languages. I aim for high-level language abstractions that can provide the expressiveness and assurance required to build extensible, reliable software.
Winter 2021: CS 842 Probabilistic Programming Languages
Handlers for “effectful effects”? Yes, with a type system to defend abstractions.
Robots plan paths against both noise and adversarial uncertainty.
Algebraic effects (and hence exceptions, asynchrony, ...) made modular
A lot of polymorphism and extensibility in a lightweight package
The flexibility of unchecked exceptions, the static guarantees of checked exceptions, and good performance too
An expressive, lightweight genericity mechanism with better code reuse and stronger static checking