I'm an Associate Professor in the Rutgers Department of Linguistics, where I also serve as the Graduate Program Director.
My research is computational. Using techniques and results from modern computer science, I develop formal models of how human languages compositionally generate complex meanings from smaller pieces. Programming languages are artificial (and, compared with natural languages, simple) systems, but they are, after all, languages—with form, meaning, and a systematic mapping between the two.
The connection between linguistic semantics and functional programming is especially close: both build complex concepts or procedures by iteratively applying functions to arguments. My research often uses monads and applicative functors, techniques developed for modularly extending functional languages with side effects such as state and nondeterminism, as engines for better and more explanatory models.
As long as I've been a linguist, I've been fascinated by quantification, scope, indefiniteness, anaphora, and ellipsis, interacting domains in which the relationship between linguistic form and meaning is especially rich, and revealing. I have developed new frameworks for doing semantics in the presence of dynamic effects (state) and alternatives (nondeterminism). I have longstanding interests and projects in CCG, parsing, and continuations. And I am a fan of implementing semantic theories as runnable, debuggable code.
At Rutgers I teach courses at the undergraduate and graduate levels in formal semantics, computational linguistics, and general linguistics.
You can find further details of my academic life, including papers, talks, course materials, and PhD students, in my CV.
Email me at