Object-oriented paradigm has become increasingly popular from past few decades due to their incredible and exciting features. The features like polymorphism, inheritance, abstraction, dynamic binding etc. made object-oriented languages widely acceptable. However at the same time the same features are responsible for degrading the performance of programs written in these languages. These features are responsible for making object-oriented programs harder to optimize than the programs written in the languages like C and FORTRAN. One of the main factors that make object-oriented languages slower is the frequent use of indirect calls to methods (virtual functions). to address the problem of how to convert virtual function calls to direct calls and to target where is the possibility of inlining, a number of techniques and algorithms have been designed and put into practical use in many of the optimizing compilers. In this work we will we put forward a study about the reducing or elimination of virtual function calls for statically typed object-oriented languages using various proposed Analysis algorithms. This study will bring to the front the best and worst about various proposed algorithms for resolution of virtual function call methods.
[1]
Sajad Ahmad Bhat,et al.
A Practical and Comparative Study of Call Graph Construction Algorithms
,
2012
.
[2]
Toshiaki Yasue,et al.
A study of devirtualization techniques for a Java Just-In-Time compiler
,
2000,
OOPSLA '00.
[3]
Dirk Grunwald,et al.
Reducing indirect function call overhead in C++ programs
,
1994,
POPL '94.
[4]
Bjarne Stroustrup,et al.
The Annotated C++ Reference Manual
,
1990
.
[5]
Laurie J. Hendren,et al.
Practical virtual method call resolution for Java
,
2000,
OOPSLA '00.
[6]
David Grove,et al.
Optimization of Object-Oriented Programs Using Static Class Hierarchy Analysis
,
1995,
ECOOP.
[7]
Craig Chambers,et al.
Whole-program optimization of object-oriented languages
,
1996
.
[8]
James M. Stichnoth,et al.
Practicing JUDO: Java under dynamic optimizations
,
2000,
PLDI '00.