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
- RobustHeap / DieHard
- Gene Novark, Emery D. Berger, Benjamin G. Zorn, Exterminator: Automatically Correcting Memory Errors with High Probability, Communications of the ACM, pp 87-95, December 2008. A longer version appears in ACM SIGPLAN 2007 Conference on Programming Language Design and Implementation (PLDI'07), pp 1-11, San Diego, CA, June 2007.
- Gene Novark, Emery D. Berger, Benjamin G. Zorn, Plug: Automatically Tolerating Memory Leaks in C and C++ Applications, Department of Computer Science Tech Report 08-09, University of Massachusetts, April 2008 (submitted for publication).
- Vitaliy B. Lvin, Gene Novark, Emery D. Berger, Benjamin G. Zorn, Archipelago: Trading Address Space for Reliability and Security, Thirteenth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS '08), Seattle, WA, March 2008.
- Emery D. Berger and Benjamin G. Zorn, DieHard: Efficient Probabilistic Memory Safety, Department of Computer Science Tech Report 07-17, University of Massachusetts, April 2008 (submitted for publication, supersedes original publication DieHard: Probabilistic Memory Safety for Unsafe Languages, ACM SIGPLAN 2006 Conference on Programming Language Design and Implementation (PLDI'06), pp 158-168, Ottawa, Canada, June 2006.
- Critical Memory / Samurai
- Karthik Pattabiraman, Vinod Grover and Benjamin Zorn, Samurai: Protecting Critical Data in Unsafe Languages, EuroSys 2008, Glasgow, Scotland, April 2008. Talk: PPT, pdf.
- Karthik Pattabiraman, Vinod Grover, and Benjamin G. Zorn, Samurai - Protecting Critical Data in Unsafe Languages, Microsoft Research, Tech Report MSR-TR-2006-127, September 2006 (revised October 2007).
- Karthik Pattabiraman, Vinod Grover, and Benjamin G. Zorn, Software Critical Memory - All Memory is Not Created Equal, Microsoft Research, Tech Report MSR-TR-2006-128, September 2006.
- ToleRace
- Paruj Ratanaworabhan, Martin Burtscher, Darko Kirovski, Rahul Nagpal, Karthik Pattabiraman, and Benjamin Zorn, Detecting and Tolerating Asymmetric Races, 14th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP 2009), Raleigh, NC, February 2009.
- D. Kirovski, B.G. Zorn, R. Nagpal, and K. Pattabiraman, An Oracle for Tolerating and Detecting Asymmetric Races. Microsoft Research Technical Report, MSR-TR-2007-122, 2007.
- Rahul Nagpal, Karthik Pattabiraman, Darko Kirovski, and Benjamin Zorn, ToleRace: Tolerating and Detecting Races, Second Workshop on Software Tools for Multi-Core Systems (STMCS), San Jose, CA, March 2007.
- Nozzle
- Paruj Ratanaworabhan, Benjamin Livshits and Benjamin Zorn, Nozzle: A Defense Against Heap-spraying Code Injection Attacks, Microsoft Research Technical Report MSR-TR-2008-176, November 2008.
Collaborators
- Colleagues
- Emery Berger (U. Mass, Amherst)
- Martin Burtscher (U. Texas, Austin)
- Johannes Helander (EMICS)
- Darko Kirovski (MSR)
- Ben Livshits (MSR)
- Recent Interns
- Paruj Ratanaworabhan, Cornell University
- Gene Novark, University of Massachusetts, Amherst
- Nishith Khantal, IIT, Kanpur
- Rahul Nagpal, IISc, Bangalore
- Karthik Pattabiraman, University of Illinois, Urbana-Champaign
- Associated Projects and Groups at Microsoft Research
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.



