DocumentCode
2154751
Title
The effect of call graph construction algorithms for object-oriented programs on automatic clustering
Author
Rayside, Derek ; Reuss, Steve ; Hedges, Erik ; Kontogiannis, Kostas
Author_Institution
Dept. of Electr. & Comput. Eng., Waterloo Univ., Ont., Canada
fYear
2000
fDate
2000
Firstpage
191
Lastpage
200
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
automatic programming; expert system shells; graph theory; object-oriented programming; pattern clustering; reverse engineering; JESS; Java Expert System Shell; automatic clustering; automatic clustering algorithms; call graph construction algorithms; compiler optimization; high level structure; large graphs; medium sized programs; object oriented languages; object oriented programs; polymorphism; procedural languages; procedural program; static construction; user specified constraints; weighted arcs; Algorithm design and analysis; Artificial intelligence; Clustering algorithms; Computer languages; Expert systems; Java; Mechanical engineering; Optimizing compilers; Program processors; Reverse engineering;
fLanguage
English
Publisher
ieee
Conference_Titel
Program Comprehension, 2000. Proceedings. IWPC 2000. 8th International Workshop on
Conference_Location
Limerick
ISSN
1092-8138
Print_ISBN
0-7695-0656-9
Type
conf
DOI
10.1109/WPC.2000.852493
Filename
852493
Link To Document