Skip to content Skip to navigation
Computer Science Department Colloquium
3/28/2016 10:30 am
Core A (Room 301)

Analysis Tools for Reliable Software Everywhere

Manu Sridharan, Samsung Research America

Faculty Host: Vinod Ganapathy

Abstract

Software is becoming ubiquitous in everyday life, from today’s smartphones and servers to tomorrow’s self-driving cars, drones, and Internet of Things devices. However, the distributed, always-on nature of this software poses significant new challenges for reliability, security, and programmer productivity.  Better programming tools are needed to enable next-generation applications to achieve their full transformative potential.  I have helped design and develop several such tools in my recent research based on novel techniques in program analysis.

In this talk, I will discuss two recent projects focused on program analysis for JavaScript, which poses unique challenges due to JavaScript's dynamic nature.  First, I will present dynamic determinacy analysis, a technique that dramatically improves the scalability and precision of JavaScript static analysis.  Determinacy analysis collects sound, over-approximate information from dynamic runs to aid in static analysis of complex reflective code.

Second, I will present EventRacer, the first tool for discovering and debugging non-determinism errors in event-driven programs. Event-driven programs often suffer from timing-based data races that can be fiendishly difficult to reproduce and debug. EventRacer adapts the notion of a "happens-before relation" from concurrent and distributed systems to give a clean definition of data races for event-driven programs. It also incorporates multiple novel techniques to achieve scalability and usability for real-world applications. EventRacer enabled discovery of many errors in deployed Fortune 100 web sites, and its techniques have since been applied in a variety of other emerging domains.

Bio

Manu Sridharan is a senior researcher at Samsung Research America in the area of programming languages and software engineering. He received his PhD from the University of California, Berkeley in 2007, and he worked as a research staff member at IBM Research from 2008-2013.  His research has drawn on, and contributed to, techniques in static analysis, dynamic analysis, and program synthesis, with applications to security, software quality, code refactoring, and software performance. His work has been incorporated into multiple commercial products, including IBM's commercial security analysis tool and Samsung's developer toolkit for the Tizen operating system.  For further details, see http://manu.sridharan.net.