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 group (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.
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.
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.
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)
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.
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.
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.
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
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.
PLMW @ POPL
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
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
Benno Stein, Lazaro Clapp, Manu Sridharan, Bor-Yuh Evan Chang.
33rd IEEE/ACM International Conference on Automated Software Engineering (ASE '18)