Intermodular Slicing of Object-Oriented Programs

Christoph Steindl
Johannes Kepler University Linz
Institute for Practical Computer Science
Altenbergerstraße 69, A-4040 Linz
steindl@ssw.uni-linz.ac.at


Abstract

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
Published in Lecture Notes in Computer Science 1383 (pp. 264-278), ISBN 3-540-64304-4, Springer-Verlag, 1998.
The copyright for this publication is held by Springer.
You can download the full paper in Postscript, in compressed Postscript, or click here to browse the slides of the presentation online.