I'm an Associate Professor in the Rutgers Department of Linguistics, where I also serve as the Graduate Program Director.
I'm a formal and computational semanticist. My research uses computer science, type theory, and lambda calculus to develop precise, scalable, compositional, and implemented models of how language is generated, parsed, and understood.
Programming languages are unlike natural language in many ways, but they are, after all, languages—with form, meaning, and a 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