Research Projects
See the Research page for a little more information about each of these projects, or follow the individual project links for more details.
Deterministic-by-default Parallel Programming: Language and compiler techniques to make parallel programming far easier than it is today, by enabling programmers to write provably deterministic parallel programs, and by enforcing that any non-deterministic behavior is made explicit and isolated.
SVA: Secure Virtual Architecture: A compiler-based virtual machine for commodity operating systems that can greatly enhance the security and reliability of today’s systems.
SAFECode: Compiler techniques to enforce memory safety and other safety properties efficiently for unmodified C programs.
The LLVM Compiler Infrastructure: A novel virtual instruction set and compiler infrastructure that enables lifelong analysis and transformation of programs in arbitrary programming languages.

