I am a Principal Researcher at Microsoft Research, where I am a member of the Operating System Technologies group. My research interests span compilers, programming languages, operating systems, and performance. My current focus is on better programming languages and tools for systems programming. I lead the Checked C project.
Checked C is investigating extending C with static and dynamic checking to detect or prevent common programming errors in C such as buffer overruns, out-of-bounds memory accesses, and incorrect pointer casts. This will improve system reliability, security, and programmer productivity for widely-used C and C++ code bases.
I rejoined Microsoft Research in 2015. From 2014 to 2015, I led the System C# project, an effort to create a version of C# and an implementation suitable for systems programming on Windows. The effort was shelved largely because of incompatibilities between the programming models of C#, C++ and C. The differences were too large to overcome to make this practical at this time. C# is type-safe and uses automatic memory management, while C++ and C do not enforce strong type-safety and use explicit memory management. C++ or C code could corrupt the memory used by C# code, leading to hard-to-debug crashes in the garbage collector or C# code.
From 2007 to 2014, I led the tools team for the Midori project. I was the development lead and then the development manager for the tools team. The team built the technology that enabled the Midori OS to be written almost entirely in C#, including an ahead-of-time compiler, a lightweight runtime system, and the implementation of core OS features such as shared libraries for C#. We built on the work that we did for Singularity. The shared libraries included support for sharing generic code across libraries, something not provided by typical C++ template implementations. This reduced code size for Midori by over 35%. We also focused on reducing code size, improving optimizations for managed code, and reducing costs of managed code such as bounds checking, and ode.
Our work on highly-optimizing ahead-of-time compilation for C# directly inspired the .Net Native product, which shipped in 2014.
From 2001 to 2007, I led the Advanced Compiler Technology group at Microsoft Research. The group was one of the research groups that worked on the Singularity Project. We designed and built the Bartok compiler and lightweight runtime system used in Singularity.