Interests: Static and Dynamic Program Analysis, Automated Software Testing, Security
A fast, practical, static nullness checker for Java
NullAway takes in code following an intuitive annotation discipline, where values that might be null at runtime, must be annotated with @Nullable. It performs type-based local analysis to ensure that any pointer that gets dereferenced in annotated code cannot be null, and thus prevent NullPointerExceptions (NPEs). In our measurements, the build-time overhead of running NullAway is usually less than 20% of javac, which allows us to use it to analize all of Uber Android Java code on every local compilation.
with Manu Sridharan, Subarno Banerjee, and others at Uber
A static analysis tool for preventing UI access off the main thread in stream-based (RxJava/RxAndroid) Android applications.
The RxThreadEffectChecker is built on the Checker Framework, and particularly it works in tandem with their guieffect checker. It extends these checkers with awaraness of the ReactiveX stream-based threading model. We have deployed RxThreadEffectChecker at Uber and are working on a faster iteration of this tool, using the same type system.
with Benno Stein, Manu Sridharan, and others at Uber
Benno Stein, Lazaro Clapp, Manu Sridharan, Bor-Yuh Evan Chang
33rd ACM/IEEE International Conference on Automated Software Engineering, (ASE), 2018.
Osbert Bastani, Lazaro Clapp, Saswat Anand, Rahul Sharma, Alex Aiken
Lazaro Clapp, Osbert Bastani, Saswat Anand, Alex Aiken
24th ACM SIGSOFT International Symposium on the Foundations of Software Engineering (FSE), 2016.
Lazaro Clapp, Saswat Anand, Alex Aiken
ACM International Symposium on Software Testing and Analysis (ISSTA), 2015.