Darren C. Atkinson and William G. Griswold, “Implementation techniques for efficient data-flow analysis of large programs,” in Proceedings of the 2001 International Conference on Software Maintenance, pp. 52–61, November 2001.
Many software engineering tools such as program slicers must perform data-flow analysis in order to extract necessary information from the program source. These tools typically borrow much of their implementation from optimizing compilers. However, since these tools are expected to analyze programs in their entirety, rather than functions in isolation, the time and space performance of the data-flow analyses are of major concern. We present techniques that reduce the time and space required to perform data-flow analysis of large programs. We have used these techniques to implement an efficient program slicing tool for C programs and have computed slices of programs with more than 100,000 lines of code.[Full text in PDF]