The Programming Principles and Tools group devises formal techniques and models for understanding programs, programming abstractions and languages, and develops related implementation technology.
Programming Principles and Tools is part of Microsoft Research Cambridge. Our work can be grouped into four themes:
We develop new ways to write, structure and reason about programs running in various environments. This includes advanced type and module systems, logics and semantic models, and probabilistic programming for machine learning.
We contribute to the Haskell and F# programming languages. We have a strong interest in the Coq theorem prover. We build world-class verification tools as well as tools for modelling various biological systems.
We work on various security and privacy issues surrounding programming, applications and systems. [more]
We focus on the design and analysis of executable programs describing biological phenomena, DNA computing, and molecular programming.