*
Quick Links|Home|Worldwide
Microsoft*
Search for


Software Design & Implementation

Overview

The Software Design and Implementation Group at Microsoft Research is investigating new approaches to programming language design and programming language implementation (including compilation and runtime systems) to increase program performance, security, and reliability.

 

People

Primary Contact: Ben Zorn


   

Affiliate Members




Rowan,
Kael
 
Projects
  • Ndure - Error Tolerant Software - we seek to transform programs with existing memory safety errors (e.g., buffer overflows, dangling pointers, races, etc.) and execute them so that they complete with well-defined and acceptable semantics.
    • DieHard / Exterminator (in collaboration with Emery Berger and Gene Novark, University of Massachusetts, Amherst).  We seek to tolerate and correct memory errors including buffer overruns and dangling pointer errors by providing probabilistic memory safety.  Using randomization, replication, and over-provisioning, we are able to provide the illusion that every object exists in its own infinite sub-heap.  
      For more information, visit the DieHard website hosted by Emery Berger.
    • Critical Memory / Samurai (in colloboration with Karthik Pattabiraman (UIUC) and Vinod Grover (Microsoft)).  We define a new type of memory, critical memory, that provides guarantees of consistency against arbitrary loads and stores in type unsafe languages such as C and C++.  With critical memory, programmers can reason about the memory safety of a selected subset of their application without needing the entire application to be safe.  Samurai is a software implementation of critical memory that provides probabilistic guarantees that critical memory is uncorrupted.
    • ToleRace (in collaboration with Darko Kirovski (MSR), Paruj Ratanaworabhan (Cornell), Martin Burtscher (UT Austin), Rahul Nagpal (IISc, Bangalore), and Karthik Pattabiraman (UIUC)).  ToleRace is a runtime system that allows programs to either tolerate or detect asymmetric races based on local replication of shared state. ToleRace provides an approximation of atomicity in critical sections by creating local copies of shared variables when a critical section is entered and propagating the appropriate copy when the critical section is exited.
    • Trust in Pervasive Systems (in collaboration with Johannes Helander (MSR) and Nishith Khantal (IIT, Kanpur)).  We focus on the management of trust in pervasive systems and techniques that balance security and privacy concerns with convenience for a wide class of data.
Publications
Opportunities

    If you are interested in seeking job opportunities in the Software Design and Implementation research group, please see the Programming Languages and Tools groups recruiting page.

    We are always looking for exceptional PhD candidates to join us as interns, especially during the summer months. For more information about becoming an intern, please visit the MSR internship website.

    Microsoft is an equal opportunity employer and supports workforce diversity.

Collaborations

©2008 Microsoft Corporation. All rights reserved. Terms of Use |Trademarks |Privacy Statement