Christopher L. Conway

Learn More
Automaton-based static program analysis has proved to be an effective tool for bug finding. Current tools generally re-analyze a program from scratch in response to a change in the code, which can result in much duplicated effort. We present an inter-procedural algorithm that analyzes incrementally in response to program changes and present experiments for(More)
Device drivers are difficult to write and error-prone. They are usually written in C, a fairly low-level language with minimal type safety and little support for device semantics. As a result, they have become a major source of instability in operating system code.This paper presents NDL, a language for device drivers. NDL provides high-level abstractions(More)
Asynchronous systems components are hard to write, hard to reason about, and (not coincidentally) hard to mechanically verify. In order to achieve high performance, asynchronous code is often written in an event-driven style that introduces non-sequential control flow and persistent heap data to track pending operations. As a result, existing sequential(More)
It is well known that the use of points-to information can substantially improve the accuracy of a static program analysis. Commonly used algorithms for computing points-to information are known to be sound only for memory-safe programs. Thus, it appears problematic to utilize points-to information to verify the memory safety property without giving up(More)
For efficiency and portability, network packet processing code is typically written in low-level languages and makes use of bit-level operations to compactly represent data. Although packet data is highly structured, low-level implementation details make it difficult to verify that the behavior of the code is consistent with high-level data invari-ants. We(More)
Solvers for the Satisfiability Modulo Theories (SMT) problem are making rapid progress. However, many verification tools aren't making use of the full power of modern SMT solvers. We believe that the verification community could be benefiting more from the work of the SMT community; at the same time, the SMT community could benefit from a more active and(More)
Dedication For Hilleary. And why not? iii Acknowledgments I'd like to express my appreciation to all those without whose mentorship and support I would not have been able to complete this work: Clark Barrett. I'm grateful also for the advice and friendship of Al Aho and Amir Pnueli, who helped me through difficult times with wisdom and grace. I am in debt(More)
  • 1