I am a Principal Researcher, leading the Software Design and Implementation
group in Microsoft Research. I am also an Adjoint Associate Professor of Computer Science
at the University of Colorado,
where I worked from 1990-1998.
I have a BS from Rensselaer Polytechnic
Institute (1982) and a MS (1984) and PhD (1989) from the
University of California at Berkeley. My research interests include
programming language design and implementation and performance measurement and
analysis. I have served previously as an Associate Editor of the ACM journals
Transactions on Programming Languages and Systems
and Transactions on Architecture and Code
Optimization and I am currently a member of the ACM SIGPLAN Executive
Committee. For further information about my research, please see
my vita.
Projects:
-
RobustHeap /
DH (with Emery Berger, Ted Hart, and Gene Novark):
RobustHeap and DH (formerly DieHard) are memory
allocators that include a number of features to provide tolerance or detection of
memory errors related to out-of-bounds writes and use of dangling pointers.
ToleRace (with Darko Kirovski): ToleRace is a runtime system that allows programs to
either tolerate or detect asymmetric races based on local replication of shared state.
- Critical Memory / Samurai (with Karthik Pattabiraman (UIUC)).
Critical memory is a new type of memory
that provides guarantees of consistency against
arbitrary loads and stores in type unsafe languages such as C and
C++.
-
Nozzle (with Ben Livshits): protecting browsers against heap-spraying attacks
Professional Activities:
- SIGPLAN Executive
Committee, Member-at-Large (July 2007 - June 2009)
- Program co-Chair (with Onur Mutlu),
2008 IEEE International
Symposium on Workload Characterization (IISWC'08)
- Program Committee, 2007
Conference on Languages, Compilers, and Tools for Embedded Systems
(LCTES'07)
- Program Committee, 2007 International
Symposium on Code Generation and Optimization (CGO 2007)
- Program co-Chair (with Kevin Skadron), Fifteenth
International Conference on Parallel Architectures and Compilation
Techniques (PACT-2006)
- Program Committee, Third ACM
SIGPLAN History of Programming Languages Conference (HOPL-III)
- Program Committee, 4th Annual International
Symposium on Code Generation and Optimization (CGO-4)
- Program Chair, 3rd Workshop on Memory System
Performance (MSP'05)
- Ben's CLI Benchmarks - a collection
of compute-intensive CLI programs
- Co-chair (with Hoi Vo), 2nd Workshop on Managed Runtime Environments
(MRE'04)
Presentations:
- "Samurai:
Protecting Critical Data in Unsafe Languages" (pdf), EuroSys 2008,
Glasgow, Scotland, April 2008
- "Tolerating and Correcting Memory
Errors in C and C++" (pdf),
Microsoft Research Cambridge, April 2008.
- "Programming Languages for
Building Trustworthy Systems" (pdf),
Information Trust Institute, 4th ITI Workshop on Dependability and Security:
Opportunities and Challenges in Building an Overarching Community (November
2007).
- "Tolerating and Correcting Memory
Errors in C and C++" (pdf), University of Illinois at Champaign-Urbana, November 2007.
- "DieHard: Memory Error
Fault Tolerance in C and C++" (pdf), Microsoft, June 2007.
- "Software Fault Tolerance for
Unsafe Languages", University of British Columbia, Dec. 2006.
- "Execution Environments for
Building Dependable Systems", Invited talk at the
3rd Workshop on Managed Runtime
Environments (MRE'05).
- "Thoughts on the Future of
Runtime Systems", IBM
Invitational Workshop on the Future of Virtual Execution Environments
(VEE'04).
- "Performance in the Age of Trustworthy
Computing", University of Colorado and others, 2004.
Publications:
- 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.
- 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.
- 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.
- Karthik Pattabiraman, Vinod Grover and Benjamin Zorn, "Samurai:
Protecting Critical Data in Unsafe Languages", EuroSys 2008,
Glasgow, Scotland, April 2008.
- 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, 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.
- Johannes Helander and Benjamin Zorn, "Medina:
Combining Evidence to Build Trust", (Slides
PPT,
PDF), Web 2.0 Security &
Privacy 2007 (W2SP 2007), Oakland, CA, May 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.
- 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.
- 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.
- 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.
- Emery D. Berger, Benjamin G. Zorn, and Kathryn S. McKinley,
"Reconsidering
Custom Memory Allocation", 17th ACM Conference on Object-Oriented
Programming, Systems, Languages, and Applications (OOPSLA'02), pp 1-12,
November 2002.
- Martin Burtscher, Benjamin G. Zorn "Hybrid Load-Value Predictors",
IEEE Transactions on Computers, 51(7), pp. 759-774, 2002.
- Emery D. Berger, Benjamin G. Zorn, and Kathryn S. McKinley,
"Composing
High-Performance Memory Allocators", Programming Languages Design
and Implementation '01 (PLDI'01), June 2001. (Presentation
in ppt.)
- Matthew L. Seidl and Benjamin G. Zorn, "Implementing Heap-Object
Behavior Prediction Efficiently and Effectively", Software-Practice
and Experience, 31(9), pp 869-892, 2001.
This page is maintained by Ben Zorn
(zorn at microsoft dot com).