Main People Publications Research Tools
Current Research Projects
Data-flow Analysis of Large Software Systems


Software tools based on data-flow analyses can automate many software engineering tasks. These tools, however, are rarely used in practice because existing data-flow analyzers are prohibitively expensive or too imprecise for use with large software systems written in languages that contain complex language constructs such as pointers, arrays, and function-valued variables. The primary goal of this research is to develop data-flow analyses that are sufficiently efficient and precise in practice to analyze programs when those programs are under development, testing, and maintenance. The research involves three primary efforts: development of efficient and effective data-flow analyses for C Programs; performance of large-scale experimentation to evaluate the algorithms and to guide the direction of the later work; and investigation of the application of the techniques to object-oriented languages. The proposed research will have several tangible results: it will provide information about how practical data-flow analyses can be created; it will construct prototypes and assemble a set of experimental subjects for use in evaluation of the results of the research and demonstration of the practicality of the algorithms; and it will use discoveries about data-flow analyses as a starting point for developing such techniques for object-oriented programs.



Georgia Tech | College of Computing | Software Engineering | Aristotle Home
Updated November 14, 2005 by Jim Jones