Rapid development of simple, custom program analysis tools

Kevin Sullivan · 2002

Compiler based program analysis tools can aid program understanding. Requirements for such tools include practicality and high assurance: Tools have to be economical to develop and run and applicable to real systems; and engineers have to have a basis for confidently interpreting tool results. These requirements can be hard to meet. Sophisticated tools can be costly to build and use; complexities of real systems can render compiler based tools useless; and it can be hard to interpret tool results. These problems raise three questions: Are simple, high assurance tools practical? Are they useful? What are the key issues for practicality and assurance in general? To help get answers, the author has designed a component based architecture for rapid tool development. He discusses the architecture and its use, and summarizes an experience using a tool to analyze a real system-a version of Mosaic. Work to date demonstrates the feasibility of rapidly developing simple, practical high assurance tools, and sheds light on some of the practicality and assurance issues.

Read the paper · More papers on PaperTik