ACM Home Page
Please provide us with feedback. Feedback
Digital Library logoTake a look at the new version of this page: [ beta version ]. Tell us what you think.
Call graph construction in object-oriented languages
Full text PdfPdf (2.63 MB)
Source ACM SIGPLAN Notices archive
Volume 32 ,  Issue 10  (October 1997) table of contents
Pages: 108 - 124  
Year of Publication: 1997
ISSN:0362-1340
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
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 32,   Downloads (12 Months): 175,   Citation Count: 49
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/263700.264352
What is a DOI?

Warning: The download time has expired please click on the item to try again.


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  49

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