My research is concerned with the use of fine-grain dependence graphs for specification, development, and analysis of software and hardware systems. The objective is a new generation of tools that provide precise and complete information about the structure of
complex systems. I am working to improve the performance and functionality of generic dependence-graph technology, and am also exploring the use of the technology in various application domains.
Dependence-graph technology can be used in a program understanding system, where the graphs may include forward and backward links between each assignment statement and possible uses of the values stored by that assignment. Pointer analysis can be used so that indirect loads and stores through pointers are taken into account, as well as indirect function calls. Dataflow analysis can be used so that links between unrelated assignments and uses are excluded. Operations that highlight forward and backward slices show the impact of a given statement on the rest of the program (forward slicing), and the impact of the rest of a program on a given statement (backward slicing). Operations that highlight paths between nodes in the dependence graph (chops) show ways in which the program points are interdependent (or independent).
Uses of slicing and chopping include software development, maintenance and re-engineering of legacy code, test-data generation, security-assurance and safety-assurance inspection, and semantic interference checking in configuration management systems. I am working with Ph.D. student Lyn Millett, who is studying program dependence-graphs and slicing of concurrent programs.
[On leave spring 2000.]
Co-founder and Chairman: GrammaTech, Inc.
Member: Science and Technology Study Group, Infosec Research Council, October 1999-May 2000.
Static-semantic analysis based on dependence graphs. SPAWAR, San Diego, CA, August 1999.
—. Hewlett-Packard, Rancho Bernardo, CA, October 1999.
“Program slicing of hardware description languages.” Proc. of Charme ’99 (September 1999). Bad Herrenalb, Germany (with E.M. Clarke, M. Fujita, P.S. Rajan, T. Reps, and S. Shankar).