Ranjit Jhala University of California, San Diego |
Software is everywhere, and yet, extremely unreliable. One key to reliability is the design of cost-effective techniques whereby developers can formally specify the essential properties of their code, and, machines can rigorously verify that the properties hold, or demonstrate corner cases where they fail.
In this talk, I describe two such techniques. First, a scheme that uses logical predicates and theorem provers to automatically compute safety proofs. Second, an approach that uses random walks to find liveness bugs in distributed systems. I describe the key algorithmic insights underlying these approaches and the resulting tools that have helped verify and find subtle defects in a variety of complex software.
BIO: Ranjit Jhala is an Assistant Professor in the Department of Computer Science and Engineering at UC San Diego. He is interested in applying techniques from Programming Languages and Software Engineering to solve computing problems, in particular, to build reliable computer systems. His work draws from, combines and contributes to methods the areas of Model Checking, Program Analysis, Type Systems and Automated Deduction. |
4:15pm B17 Upson Hall Thursday, April 1, 2010 Refreshments at 3:45pm in the Upson 4th Floor Atrium |
Computer Science Colloquium Spring 2010 |
www.cs.cornell.edu/events/colloquium |
Algorithmic Software Verification |