|
|
Software Design & Implementation
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.
Primary Contact: Ben Zorn
| 
Ben | | | | Affiliate Members
| 
Mike | 
Trishul | 
Rowan, Kael | |
-
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.
- DieHard / Exterminator / Archipelago
- 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 PLDI'06 paper).
- Gene Novark, Emery D. Berger and Benjamin G. Zorn, "Exterminator:
Automatically Correcting Memory Errors with High Probability",
ACM SIGPLAN 2007 Conference on Programming Language Design and
Implementation (PLDI'07), pp 1-11, San Diego, CA, June 2007.
- Emery D. Berger and Benjamin G. Zorn, "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", ICES Tech Report
Number 08-06. Institute for Computational Engineering & Sciences,
University of Texas at Austin, April 2008 (submitted for
publication).
- 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.
- Trust in Pervasive Systems
- Memory Management
- Emery D. Berger, Benjamin G. Zorn, and
Kathryn S. McKinley,
Reconsidering Custom Memory Allocation, OOPSLA'2002, pp 1-12, November 2002.
- Emery D. Berger, Benjamin G. Zorn, and
Kathryn S. McKinley,
Composing High-Performance Memory Allocators,
ACM SIGPLAN 2001 Conference on Programming Language Design and
Implementation (PLDI'01), June 2001. Talk:
PPT
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.
- Colleagues
- Recent Interns
- Associated Projects and Groups at Microsoft Research
|