On the Design and Implementation of Static Analysis Tools

Date and time: 
Thu, Feb 8 2007 - 3:30pm
220 Deschutes
Thomas Ball
Microsoft Research
  • David Atkins

At Microsoft, we now regularly apply a new generation of static analysis tools that can automatically identify serious defects in programs. These tools examine millions of lines of code every day, long before the software is released for general use. With these tools, we catch more defects earlier in the software process, enabling Microsoft to deliver more reliable systems. A number of these tools have been released for general use through Microsoft's Visual Studio integrated development environment as well as freely available development kits. In this talk I will address the question: "How does one design and implement a static analysis tool chain to help people effectively address a software reliability problem?" In particular, I will identify a set of basic techniques that have proven very useful in constructing static analysis tools and have shown their worth through numerous applications. Experience with these techniques suggests we are approaching an exciting time when more people can contribute to the design and implementation of static analysis tools.


Thomas Ball is a Principal Researcher at Microsoft Research in Redmond, Washington where he manages the Software Reliability Research group. His interests are in automated techniques for improving and measuring software quality, ranging from program analysis tools to experimental software engineering. He received a B.A. in computer science from Cornell University in 1987 and the M.S. and Ph.D. degrees in computer science from the University of Wisconsin-Madison in 1993. He was a member of the technical staff at Bell Labs from 1993 to 1999 and has been with Microsoft since 1999. He is a member of the ACM.