Composing Composure: Reasoning about Robustness of Software Systems
Most software is inherently nonrobust--change the operating conditions
of a typical program slightly, and you may obtain very different
results. This lack of robustness can not only result in unpredictable
runtime behavior, it also makes testing, approximation, and
mathematical analysis of programs highly challenging.
We will argue that methods for automated logical reasoning about programs provide a way to cope with this problem. Using a program analysis, we can sometimes determine if the program is robust, and if so, exploit this property. Conversely, if a program is not robust, logic can help
us approximate it into one that is robust. Using applications from several different areas of computer science, I will show how these techniques can lead to more reliable and optimal program execution, as well as easier program development.
Swarat Chaudhuri is an assistant professor of computer science at Rice University. He is an expert on methods for automated reasoning about programs, in particular abstract interpretation and model checking. He is also interested in languages and systems for parallel programming.
Swarat received a bachelor's degree in computer science from the Indian Institute of Technology, Kharagpur, in 2001, and a doctoral degree in computer science from the University of Pennsylvania in 2007. From 2008-2011, he was an assistant professor at the Pennsylvania State University, University Park. He is a recipient of the National Science Foundation CAREER award, the ACM SIGPLAN Outstanding Doctoral Dissertation Award, and the Morris and Dorothy Rubinoff Dissertation Award from the University of Pennsylvania.