I am a Principal Researcher and a member of the Research in Software Engineering (RiSE) group in Microsoft Research, Redmond Washington. Previously, I was an Associate Professor of Computer Science at the University of Colorado from 1990-1998. I have a BS from Rensselaer Polytechnic Institute (1982) and an 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 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. I have also served as the Program Chair (1999) and General Chair (2010) of PLDI. For further information about my research and professional activities, please see my vita.
Professional Activities:
- General Chair, ACM SIGPLAN 2010 Conference on Programming Language Design and Implementation (PLDI 2010)
- Member, ACM Software System Award Committee (2010 - present)
- Chair, Conference on Code Generation and Optimization (CGO) Steering Committee (2010 - present)
- SIGPLAN Executive Committee, Member-at-Large (July 2007 - June 2012)
- I co-chair the SIGPLAN Professional Activities Committee (PAC) with Erez Petrank
We provide financial support for many professional activities, including student travel. Check it out! - I chair the SIGPLAN CACM Research Highlights Nomimating Committee We nominate papers from SIGPLAN workshops and conferences to appear in the CACM Research Highlights section. If you have suggestions for such papers, please nominate them using our website.
- I co-chair the SIGPLAN Professional Activities Committee (PAC) with Erez Petrank
- 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)
- Ben's CLI Benchmarks- a collection of compute-intensive CLI programs
Publications:
-
Charles Curtsinger, Benjamin Livshits, Benjamin Zorn, and Christian Seifert , Zozzle: Fast and Precise In-Browser JavaScript Malware Detection, to appear in Proceedings of the USENIX Security Symposium, August 2011.
- Cole Schlesinger, Karthik Pattabiraman, Nikhil Swamy, David Walker and Benjamin Zorn, Modular Protections Against Non-control Data Attacks, to appear in 24th IEEE Computer Society Foundations Symposium (CSF’2011). June 2011.
- Song Liu, Karthik Pattabiraman, Thomas Moscibroda, and Benjamin G. Zorn, Flikker: Saving DRAM Refresh-power through Critical Data Partitioning, Sixteenth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS’11), March 2011.
- Karthik Pattabiraman and Benjamin Zorn, DoDOM: Leveraging DOM Invariants for Web 2.0 Application Robustness Testing, International Symposium on Software Reliability Engineering (ISSRE’10), November 2010.
- Paruj Ratanaworabhan, Benjamin Livshits, David Simmons, and Benjamin Zorn, JSMeter: Comparing the Behavior of JavaScript Benchmarks with Real Web Applications, USENIX 2010 Conference on Web Application Development. (WebApps’10), June 2010.
- Martin Burtscher, Benjamin Livshits, Gaurav Sinha and Benjamin Zorn, JSZap: Compressing JavaScript Code, USENIX 2010 Conference on Web Application Development. (WebApps’10), June 2010.
- Paruj Ratanaworabhan, Benjamin Livshits, and Benjamin G. Zorn, Nozzle: A Defense Against Heap-spraying Code Injection Attacks, USENIX Security Symposium, August 2009.
- Gene Novark, Emery D. Berger, and Benjamin G. Zorn, Efficiently and Precisely Locating Memory Leaks and Bloat, ACM SIGPLAN 2009 Conference on Programming Language Design and Implementation (PLDI'09), pp 397-407, Dublin, Ireland, June 2009.
- Gene Novark, Emery D. Berger, and 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.
- 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.
- 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: 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.
- 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. (Slides)
Projects:
- Nozzle / Zozzle (with Ben Livshits, MSR, and Paruj Ratanaworabhan, Cornell Univ.): protecting browsers against malware.
- Yarra (with Nikhil Swamy, MSR; Cole Schlesinger and David Walker, Princeton Univ., Karthik Pattabiraman, Univ. British Columbia) An Extension to C for Data Integrity and Partial Safety.
- JSMeter (with Ben Livshits, MSR; David Simmons, Microsoft; and Paruj Ratanaworabhan, Cornell Univ.): measuring JavaScript web applications.
- JSZap (with Ben Livshits, MSR; Martin Burtscher, University of Texas, Austin) compressing JavaScript source code.
- 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.
- Samurai / Flikker (with Karthik Pattabiraman, MSR; Thomas Moscibroda, MSR; and Song Lui, Northwestern) Based on our critical memory approach, we seek to improve reliability and increase efficiency in systems.
Presentations:
- "Performance is Dead, Long Live Performance", 2010 Conference on Code Generation and Optimization (CGO'10), Keynote, April 2010.
- JSMeter: Characterizing the Behavior of JavaScript Web Applications" (pdf), February 2010.
- "Nozzle: A Defense Against Heap-spraying Code Injection Attacks" (pdf), USENIX Security Symposium, August 2009.
- "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.
