Static Analysis of Object-Oriented Programs

Christoph Steindl
Johannes Kepler University Linz
Institute for Practical Computer Science
Altenbergerstraße 69, A-4040 Linz


Static analysis derives information by inspection of the source code. The information must be valid for all possible executions of the program. Conservative assumptions must be taken if the program uses conditional branches and iteration since it is not known at compile time which branches will be taken at run time and how many iterations there will be. Two main concepts of object-oriented programming are polymorphism and dynamic binding. Furthermore object-oriented programs make heavy use of pointers (or references to objects). These dynamic aspects are difficult to integrate into static analysis. We have developed a program slicer that models dynamic aspects of object-oriented programs correctly. Starting from conservative assumptions about dynamic binding and aliases, new user guidance techniques are used to reduce these assumptions.

Paper at the 9th ECOOP Workshop for PhD Students in Object-Oriented Programming, Lisbon, Portugal, June 14-15, 1999.
Published in Lecture Notes in Computer Science ?? (pp. ??-??), ISBN ??, Springer-Verlag, 1999.
The copyright for this publication is held by Springer.
You can download the full paper in postscript (6 pages), the short abstract (in postscript) and the group summary (in postscript) as published by Springer or click here to browse the slides of the presentation online. Additionally you can download the summary (in postscript) of the group discussion at the workshop ("Using Metainformation").