ABSTRACT

This chapter presents the paradigm of context and flow sensitive whole program analysis. It explores the approach of computing distinct values for distinct contexts instead of constructing context independent functions. A value-based approach of interprocedural data flow analysis views a program as a single large procedure with different kinds of paths rather than as a collection of independent procedures. The interprocedural points-to analysis by M. Emami, R. Ghiya and L. J. Hendren can be viewed as a value-based approach. It uses a variant of call graph called an invocation graph in which recursive invocations of procedures result in creating two nodes for a procedure: One node is recursive whereas the other node is approximate. The main limitation of interprocedural data flow analysis using a restricted context is that it requires reconstruction of context. An orthogonal approach of reducing the space requirements in a context sensitive value-based interprocedural analysis is to use BDDs to encode data flow information.