Share this page
Share this page E-mail this page Print this page RSS feeds
Home > People > Mike Barnett
Mike Barnett

PRINCIPAL RSDE
.

Who I Am

I am a Research Software Design Engineer in the Programming Languages and Methods group, which is part of the Research in Software Engineering (RiSE) team. 

I have been with the Microsoft Corporation since July 1995. First, I was a member of the Natural Language Processing Group in Microsoft Research, moving to the Foundations of Software Engineering group in the fall of 1999. I am now a member of the Programming Languages and Methods group. Before coming to Microsoft, I had been an assistant professor of Computer Science at the University of Idaho for three years. I received my PhD in Computer Science from the University of Texas at Austin in 1992.

What I Do

  • Code Contracts: a language-agnostic way to express specifications in .NET languages. Specifications include method preconditions, postconditions, and object invariants. Code Contracts capture programmer intentions about how methods and data are to be used. It is Design-by-Contract meets .NET.
  • Spec#: an experimental extension to C# that adds design-by-contract features. The Spec# compiler emits run-time checks that enforce the contracts and the Spec# program verifier uses theorem-proving technology to statically check the consistency between a program and its contracts. Spec# helps programmers write correct software and makes explicit the correct usage of APIs for clients. It is integrated into Visual Studio .NET.
  • ILMerge: a static linker for .NET assemblies.
Publications