Benno Stein

PhD Candidate

University of Colorado Boulder

firstname dot lastname at colorado dot edu
ECCS 121

About Me

I am a PhD candidate 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, type inference, and bounded symbolic execution.

Recent News

Paper @ PLDI '21

Virtual, June 2021
Our paper Demanded Abstract Interpretation will be presented at the ACM/SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2021)

Thesis Proposal

Boulder, Colorado, February 2021
I proposed a dissertation centered around my recent work on Interactive Abstract Interpretation, in which I lift arbitrary abstract interpreters to incremental and demand-driven equivalents that are provably sound, terminating, and from-scratch consistent with the underlying interpreter.

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.


Demanded Abstract Interpretation

PLDI '21
Benno Stein, Bor-Yuh Evan Chang, Manu Sridharan.
ACM/SIGPLAN Conference on Programming Language Design and Implementation (PLDI '21)

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)