Intermodular Slicing of Object-Oriented Programs
We describe a program slicing tool for object-oriented programs. Program slicing uses control flow and data flow information to visualise dependences and assist the programmer in debugging and in program understanding. Object-oriented programs exploit features like dynamic binding which complicate interprocedural alias analysis. Two distinctive features of our Slicer are the support for intermodular slicing and the usage of user-feedback during the computation of data flow information. To cope with the problem of alias analysis in the presence of function pointers (which is NP-hard), we decided to first use a conservative approach leading to less precise data flow information, but then use the user's expertise to restrict the effects of dynamic binding at polymorphic call sites to get more precise solutions which should still be safe.
Paper at the CC'98,
Lisbon, Portugal, March/April 1998. LNCS 1383, Springer, pp.264-278