Book chapter
OA Policy
English

Practical Virtual Method Call Resolution for Java

Published inTsichritzis, Dionysios (Ed.), Trusted objects = Objets de confiance, p. 305-323
PublisherGenève : Centre universitaire d'informatique
Publication date1999-07
Abstract

This paper addresses the problem of resolving virtual method and interface calls in Java. The main focus is on practical, flow-insensitive techniques that can be used to analyze large applications. We present a new flow-insensitive analysis called reaching-type analysis, which is used to estimate the set of types that reach the receiver of virtual method/interface calls. We present two variations of this analysis, variable-type analysis and a coarser-grain version called declared-type analysis. We also demonstrate how a points-to style analysis, called refers-to analysis, can be used to resolve the types of receivers. We have implemented our techniques using the Soot framework, and we report on empirical results for 9 Java benchmarks, including the 7 benchmarks from SPECjvm98. We have measured the success of the various analyses at building accurate call graphs, and we conclude that reaching-type analysis leads to call graphs with 17% to 44% fewer edges and 14% to 48% fewer nodes than the corresponding call graph built using a standard class hierarchy analysis.

Citation (ISO format)
SUNDARESAN, Vijay et al. Practical Virtual Method Call Resolution for Java. In: Trusted objects = Objets de confiance. Tsichritzis, Dionysios (Ed.). Genève : Centre universitaire d’informatique, 1999. p. 305–323.
Main files (1)
Book chapter (Published version)
Identifiers
  • PID : unige:155911
104views
210downloads

Technical informations

Creation02/11/2021 12:10:00
First validation02/11/2021 12:10:00
Update time16/03/2023 02:41:02
Status update16/03/2023 02:41:01
Last indexation01/11/2024 00:35:27
All rights reserved by Archive ouverte UNIGE and the University of GenevaunigeBlack