I am a Principal Researcher and co-manager of the Research in Software Engineering (RiSE) group in Microsoft Research, Redmond Washington, a group of over 30 researchers and developers working on programming languages and software engineering. 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 and am currently serving as a member of the Computing Community Consortium (CCC) Council. For further information about my research and professional activities, please see my vita.
- Member, Computing Community Consortium (CCC) Council, 2014-present
- Co-organizer, 2016 Workshop on Approximate Computing Across the Stack (WAX 2016)
- External Program Committee, ACM SIGPLAN 2016 Conference on Programming Language Design and Implementation (PLDI 2016)
- Co-organizer, 2015 Workshop on Approximate Computing Across the Stack (WAX 2015)
- Program Committee, 2015 International Symposium on Code Generation and Optimization (CGO 2015)
- Attendee, Leadership in Science Policy Institute (LiSPI), April 2015.
- Program Committee, ACM SIGPLAN 2014 Conference on Programming Language Design and Implementation (PLDI 2014)
- Co-chair, First SIGPLAN Workshop on Probabilistic and Approximate Computing (Approx’14), June 2014
- Program Committee, 2013 International Symposium on Code Generation and Optimization (CGO 2013)
- General Chair, ACM SIGPLAN 2010 Conference on Programming Language Design and Implementation (PLDI 2010)
- Member, ACM Software System Award Committee (2010 - 2014)
- Chair, Conference on Code Generation and Optimization (CGO) Steering Committee (2010 - present)
- SIGPLAN Executive Committee, Member-at-Large (July 2007 - June 2012)
- Co-chaired the SIGPLAN Professional Activities Committee (PAC)
- Chaired the SIGPLAN CACM Research Highlights Nominating Committee
- 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
Mikal Mayer, Gustavo Soares, Maxim Grechkin, Vu Le, Mark Marron, Oleksandr Polozov, Rishabh Singh, Benjamin Zorn, and Sumit Gulwani, “User Interaction Models for Disambiguation in Programming by Example”, 28th ACM User Interface Software and Technology Symposium (UIST 2015), November 2015.
Sumit Gulwani, Jose Hernandez-Orallo, Emanuel Kitzelmann, Stephen Muggleton, Ute Schmid, Benjamin Zorn, “Inductive Programming Meets the Real World”, Communications of the ACM, November 2015.
Dan Barowy, Sumit Gulwani, Ted Hart, Benjamin Zorn, “FlashRelate: Extracting Relational Data from Semi-Structured Spreadsheets Using Examples”, ACM SIGPLAN 2015 Conference on Programming Language Design and Implementation (PLDI'15), Portland, OR, June 2015.
Thomas Ball and Benjamin Zorn, “Teach Foundational Language Principles”, Communications of the ACM, May 2015.
Paruj Ratanaworabhan, Martin Burtscher, Darko Kirovski, Benjamin G. Zorn: Hardware support for enforcing isolation in lock-based parallel programs. Proceedings of the 26th ACM International Conference on Supercomputing (ICS’12), pp.301-310, 2012.
Clemens Kolbitsch, Benjamin Livshits, Benjamin G. Zorn, Christian Seifert: Rozzle: De-cloaking Internet Malware. IEEE Symposium on Security and Privacy pp. 443-457, June 2012.
- Cole Schlesinger, Karthik Pattabiraman, Nikhil Swamy, David Walker and Benjamin Zorn, Modular Protections Against Non-control Data Attacks, 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, 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)
- Rozzle / Nozzle / Zozzle (with Ben Livshits, MSR, and Paruj Ratanaworabhan, Cornell Univ.): protecting browsers against malware.
- 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.
- 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.
- "Performance is Dead, Long Live Performance", 2010 Conference on Code Generation and Optimization (CGO'10), Keynote, April 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.