Share this page
Share this page E-mail this page Print this page RSS feeds
Home > Groups > Software Design & Implementation
Software Design & Implementation

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

Projects

  • RobustHeap & DH (formerly DieHard)  (with Ted Hart, Microsoft Research; 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. Also see Emery Berger's DH website.

  • Critical Memory / Samurai (with Karthik Pattabiraman, UIUC). 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 (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.

  • Nozzle (with Ben Livshits): protecting browsers against heap-spraying attacks

Publications

People

Collaborators

 Opportunities

  • If you are interested in seeking job opportunities in the Software Design and Implementation research group, please submit your application materials via the MSR career web page and contact Ben Zorn (zorn at microsoft dot com).
  • 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 Redmond internship website.
  • Microsoft is an equal opportunity employer and supports workforce diversity.