ACM Home Page
Please provide us with feedback. Feedback
Call graph construction in object-oriented languages
Full text PdfPdf (2.63 MB)
Source Conference on Object Oriented Programming Systems Languages and Applications archive
Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications table of contents
Atlanta, Georgia, United States
Pages: 108 - 124  
Year of Publication: 1997
ISBN:0-89791-908-4
Also published in ...
Authors
David Grove  Department of Computer Science and Engineering, University of Washington, Box 352350, Seattle, Washington
Greg DeFouw  Department of Computer Science and Engineering, University of Washington, Box 352350, Seattle, Washington
Jeffrey Dean  Digital Equipment Corporation, Western Research Lab, 250 University Avenue, Palo Alto, CA and Department of Computer Science and Engineering, University of Washington, Box 352350, Seattle, Washington
Craig Chambers  Department of Computer Science and Engineering, University of Washington, Box 352350, Seattle, Washington
Sponsor
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 28,   Downloads (12 Months): 170,   Citation Count: 48
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/263698.264352
What is a DOI?

ABSTRACT

Interprocedural analyses enable optimizing compilers to more precisely model the effects of non-inlined procedure calls, potentially resulting in substantial increases in application performance. Applying interprocedural analysis to programs written in object-oriented or functional languages is complicated by the difficulty of constructing an accurate program call graph. This paper presents a parameterized algorithmic framework for call graph construction in the presence of message sends and/or first class functions. We use this framework to describe and to implement a number of well-known and new algorithms. We then empirically assess these algorithms by applying them to a suite of medium-sized programs written in Cecil and Java, reporting on the relative cost of the analyses, the relative precision of the constructed call graphs, and the impact of this precision on the effectiveness of a number of interprocedural optimizations.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
Agesen 94
Ole Agosen. Constraint-Based Type inference and Pa/ametrie Polymorphism. In First International Static Analysis Symposium, September 1994.
 
Agesen 95
 
Agesen 96
 
Alt & Martin 95
Bacon & Sweeney 96
Bracha & Griswold 93
 
Callahan et. al.90
Chambers & Ungar 89
Chambers & Ungar 90
 
Chambers 93
Craig Chambers. The Cecil Language: Specification and Rationale. Technical Report TR-93-03-05, Department of Computer Science and Engineering. University of Washington, March 1993.
 
Cooper et. al. 92
Keith D. Cooper, Mary W. Hall, and Ken Kennedy, Procedure Cloning. In Proceedings of 1992 IEEE lnternation, al Conference on Computer Languages, pages 96--105, Oakland, CA, April 1992.
Cousot & Cousot 77
 
Dean 96
 
Dean et. al. 95
Dean et. al. 96
 
DeFouw et. al. 97
Greg DeFouw, David Grove, and Craig Chambers. Fast Interprocedural Class Analysis. Technical Report TR-97- 07-02, Department of Computer Science and Engineering. University of Washington, July 1997.
Deutsch & Schiffman 84
Diwan et. al. 96
Emami et. al. 94
 
Gosling et. al, 96
Grove et. al. 95
Hall & Kennedy 92
 
Hölzle & Agesen 96
Urs Htilzle and Ole Agesen. Dy_narnie vs. Static Optimization Techniques for Object-Oriented Languages. Theory and Practice of Object Systems, i(3), 1996._
Hölzle & Ungar 94
Jagannathan & Weeks 95
Johnson 88
Kam & Ullman 76
Kildall 73
 
Kranz 88
Lakhotia 93
Landi et. al. 93
Nielson & Nielson 97
Odersky & Wadler 97
 
Oxhøj et.al. 92
Palsberg & Schwartzbach 91
Plevyak & Chien 94
 
Plevyak & Chien 95
 
plevyak 96
 
Ryder 79
Barbara Ryder. Constructing the Call Graph of a Program. IEEETransactions on Software Engineering, 5(3):216- 225, 1979.
Shivers 88
 
Shivers 91a
 
Shivers 91b
Olin Shivers. Data Flow Analysis and Type Recovery in Scheme. In Topics in Advanced Language Implementation. M1T Press, 1991. Edited by Peter Lee. -
 
Steensgaard 94
Bjarne Steensgaard. A Polyvariant Closure Analysis with Dynamic Abstraction. Unpublished manuscript, 1994.
Steensgaard 96
Stefanescu & Zhou 94
Wilson & Lam 95

CITED BY  48

Collaborative Colleagues:
David Grove: colleagues
Greg DeFouw: colleagues
Jeffrey Dean: colleagues
Craig Chambers: colleagues