en
Book chapter
Open access
English

Practical Virtual Method Call Resolution for Java

Published inTrusted objects = Objets de confiance, Editors Tsichritzis, Dionysios, 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.

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

Technical informations

Creation11/02/2021 11:10:00 AM
First validation11/02/2021 11:10:00 AM
Update time03/16/2023 1:41:02 AM
Status update03/16/2023 1:41:01 AM
Last indexation02/12/2024 12:13:23 PM
All rights reserved by Archive ouverte UNIGE and the University of GenevaunigeBlack