Please note: This seminar will be given online.
Malavika Samak, Postdoctoral Associate
Computer Science and Artificial Intelligence Laboratory, MIT
Software libraries play a critical role in the software development process. They export APIs that provide useful functionality and create abstractions that enable developers to focus on the core application logic, leading to modular software development. Several factors influence optimal library utilization, including — (a) awareness of the most appropriate libraries, (b) the ability to reason about a library across various dimensions that include correctness, security, performance, and memory usage, and (c) the ease of incorporating a library to serve the functional requirements of the application.
In this talk, I will present my work on analyzing sequential tests to synthesize multithreaded tests for detecting concurrency bugs. The tests synthesized by these techniques have helped expose over 300 concurrency bugs in well-tested popular open-source Java libraries (JDK, Google Guava, OpenNLP, etc.), including many previously unknown bugs. Subsequently, I will also present my work on automatically replacing classes by synthesizing verified adapters, which enable drop-in replacement. The evaluation of this approach demonstrates that it can synthesize non-trivial adapters. Finally, I will conclude by briefly discussing my ongoing work on searching for replacement classes.
Bio: Malavika Samak is a Postdoctoral Associate at CSAIL, MIT, advised by Prof. Martin Rinard. Her goal is to design approaches to discover, reason, customize, and adapt code to build defect-free software systems efficiently. Her research interests are static and dynamic program analysis, synthesis, and verification. She designed techniques for synthesizing multithreaded tests for detecting concurrency bugs as part of her doctoral dissertation. She holds a Ph.D. in Computer Science from the Indian Institute of Science (IISc), Bangalore, and is a recipient of a Google Ph.D. fellowship.