The effect of call graph construction algorithms for object-oriented programs on automatic clustering
- 7 November 2002
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- No. 10928138,p. 191-200
- https://doi.org/10.1109/wpc.2000.852493
Abstract
Call graphs are commonly used as input for automatic clustering algorithms, the goal of which is to extract the high level structure of the program under study. Determining the call graph for a procedural program is fairly simple. However this is not the case for programs written in object oriented languages, due to polymorphism. A number of algorithms for the static construction of an object oriented program's call graph have been developed in the compiler optimization literature in recent years. We investigate the effect of three such algorithms on the automatic clustering of the Java Expert System Shell (JESS). Object oriented programs have an inherently richer structure than those written in procedural languages, and so even medium sized programs such as JESS produce large graphs. Existing tools that we are aware of are not able to process such graphs. Consequently, we have developed our own algorithm for automatic clustering that is scalable to large graphs. This algorithm also supports user specified constraints through the use of 'weighted' arcs.Keywords
This publication has 13 references indexed in Scilit:
- Using automatic clustering to produce high-level system organizations of source codePublished by Institute of Electrical and Electronics Engineers (IEEE) ,2002
- Change and adaptive maintenance detection in Java software systemsPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2002
- Optimization of Object-Oriented Programs Using Static Class Hierarchy AnalysisPublished by Springer Nature ,2000
- Practical experience with an application extractor for JavaPublished by Association for Computing Machinery (ACM) ,1999
- The architecture of MontanaPublished by Association for Computing Machinery (ACM) ,1998
- Call graph construction in object-oriented languagesPublished by Association for Computing Machinery (ACM) ,1997
- Fast static analysis of C++ virtual function callsPublished by Association for Computing Machinery (ACM) ,1996
- Simple and effective analysis of statically-typed object-oriented programsPublished by Association for Computing Machinery (ACM) ,1996
- Traces (A cut at the “make isn't generic” problem)Published by Springer Nature ,1993
- Additive clustering: Representation of similarities as combinations of discrete overlapping properties.Psychological Review, 1979