Benno Stein

PhD Student

University of Colorado Boulder

firstname dot lastname at colorado dot edu
ECCS 121

About Me

I am a PhD student in the Department of Computer Science at the University of Colorado Boulder, where I started in Fall 2015 and received an MS in Fall 2017. I am a member of the Programming Languages and Verification (CUPLV), advised by Professor Evan Chang. Previously, I was a student at Williams College, in Williamstown, MA, where I graduated in June 2015 with a BA in Computer Science and Mathematics.

Research Interests

I am interested in building static analysis tools and formalisms that are able to handle the complexities of modern software development. Currently, I am working on incremental and demand-driven abstract interpretation, using graph-based techniques to efficiently and soundly deliver analysis results when and where they're needed. Prior to that, I worked on improving the precision and efficiency of JavaScript analysis, combining a standard forwards abstract interpreter with a goal-directed backwards symbolic execution to refute spurious dataflow on-demand at critical points during the forwards analysis. I've also worked on a range of other program analysis topics in both academia and industry including refinement type systems, bounded symbolic execution, and software engineering applications of program analysis.

Recent News

Paper @ OOPSLA '19

Athens, Greece, October 2019
We presented our paper Static Analysis with Demand-Driven Value Refinement at the ACM/SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications.

Facebook Internship

London, UK, Fall 2019
I worked with Josh Berdine and the Infer team on Sledge: a separation logic-based symbolic executor for LLVM.

Paper @ ASE '18

Montpellier, France, September 2018
I presented our paper Safe Stream-Based Programming with Refinement Types at the 33rd IEEE/ACM International Conference on Automated Software Engineering.

Google Internship

Sunnyvale, CA, Summer 2018
I worked with Kevin Bierhoff and the Java language platform team to implement some improvements (type inference, access-path tracking, type annotation and bound support) for the Error Prone Java nullness analysis.

Student Volunteer @ POPL '18

Los Angeles, CA, January 2018
Attended and assisted with logistics at POPL and several co-located workshops.

Uber Internship

Palo Alto, CA, Summer 2017
I built a type analysis to statically detect multithreading bugs in functional-reactive Android applications, working under Manu Sridharan in the static analysis group.

Oregon Programming Languages Summer School

Eugene, OR, June 2016
Attended OPLSS 2016. I saw a wide range of talks from invited lecturers and other students, gave a talk on my own research, and got to know a ton of other PL researchers.

PLDI Student Research Competition

Santa Barbara, CA, June 2016
Attended PLDI and won 2nd place in the SRC for my presentation on Goal-Directed Backwards Static Analysis for JavaScript.

DARPA MUSE Demo Hackathon

Washington D.C., February 2016
Assisted the CUPLV MUSE team with their hackathon by building a backwards, goal-directed Android analysis, looking for misuses of common Android encryption libraries.


St. Petersburg, FL, January 2016
Attended POPL '16 and the co-located Programming Languages Mentoring Workshop, supported by a research community development grant from CU.


Static Analysis with Demand-Driven Value Refinement

Benno Stein, Benjamin Barslev Nielsen, Bor-Yuh Evan Chang, Anders Møller.
ACM/SIGPLAN Conference on Object-Oriented Programs, Systems, Languages, and Applications (OOPSLA '19)
(Slides courtesy of Benjamin Barslev Nielsen)

Safe Stream-Based Programming with Refinement Types

ASE '18
Benno Stein, Lazaro Clapp, Manu Sridharan, Bor-Yuh Evan Chang.
33rd IEEE/ACM International Conference on Automated Software Engineering (ASE '18)