Sharpening global static analysis to cope with Java

  • Authors:
  • Sara Porat;Bilha Mendelson;Irina Shapira

  • Affiliations:
  • IBM Research Laboratory in Haifa;IBM Research Laboratory in Haifa;IBM Research Laboratory in Haifa

  • Venue:
  • CASCON '98 Proceedings of the 1998 conference of the Centre for Advanced Studies on Collaborative research
  • Year:
  • 1998

Quantified Score

Hi-index 0.00

Visualization

Abstract

This paper describes a Java package, JAN, that collects and manipulates static information of a Java application. The focus of JAN (Java ANalysis), is to provide an effective technique for building the call graph of a given Java application. This view may be used for program understanding, as well as for optimization purposes; such as code size reduction and devirtualization. JAN extends techniques that were developed for other Object Oriented languages. Its main contribution is in coping with the special features of Java. We introduce the notion of partial analysis by distinguishing between set of classes to be analysed, versus a set of classes that are preprocessed.This is extremely useful in Java where a great percentage of the application code belongs to library classes that are independent of the user code. JAN has been extended to support hierarchy analysis and call graph construction for (RMI-based) distributed Java applications.