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, inclu...
Today, every application uses software libraries. Yet, while a lot of research exists w.r.t. analyz...
In object oriented programming, a Call Graph represents the calling relationships between the progra...
Abstract—Distributed applications provide numerous advantages related to software performance, relia...
This paper addresses the problem of resolving virtual method and interface calls in Java. The main f...
Virtual method calls are a fundamental feature offered by Java, an object-oriented programming langu...
Recent advances in Virtual Machine\u2019s technology have led to the diffusion of Java execution env...
Java programs are deployed in a bytecode format that is executed by a Java virtual machine (JVM). J...
Calling context profiling collects statistics separately for each calling context. Complete calling ...
Call graphs are at the core of many static analyses rangingfrom the detection of unused methods to a...
AbstractCalling context profiling collects statistics separately for each calling context. Complete ...
Java workloads are becoming more and more prominent on various computing devices. Understanding the ...
This dissertation presents a pointer analysis for Java programs, together with several practical ana...
Whether applications or libraries, today’s software heavily reuses existing code to build more gigan...
In this paper we seek to provide a foundation for the study of the level of use of objectoriented t...
The performance of contemporary object oriented languages depends on optimizations such as devirtual...
Today, every application uses software libraries. Yet, while a lot of research exists w.r.t. analyz...
In object oriented programming, a Call Graph represents the calling relationships between the progra...
Abstract—Distributed applications provide numerous advantages related to software performance, relia...
This paper addresses the problem of resolving virtual method and interface calls in Java. The main f...
Virtual method calls are a fundamental feature offered by Java, an object-oriented programming langu...
Recent advances in Virtual Machine\u2019s technology have led to the diffusion of Java execution env...
Java programs are deployed in a bytecode format that is executed by a Java virtual machine (JVM). J...
Calling context profiling collects statistics separately for each calling context. Complete calling ...
Call graphs are at the core of many static analyses rangingfrom the detection of unused methods to a...
AbstractCalling context profiling collects statistics separately for each calling context. Complete ...
Java workloads are becoming more and more prominent on various computing devices. Understanding the ...
This dissertation presents a pointer analysis for Java programs, together with several practical ana...
Whether applications or libraries, today’s software heavily reuses existing code to build more gigan...
In this paper we seek to provide a foundation for the study of the level of use of objectoriented t...
The performance of contemporary object oriented languages depends on optimizations such as devirtual...
Today, every application uses software libraries. Yet, while a lot of research exists w.r.t. analyz...
In object oriented programming, a Call Graph represents the calling relationships between the progra...
Abstract—Distributed applications provide numerous advantages related to software performance, relia...