ACM Home Page
Please provide us with feedback. Feedback
Simple and effective analysis of statically-typed object-oriented programs
Full text PdfPdf (1.70 MB)
Source Conference on Object Oriented Programming Systems Languages and Applications archive
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications table of contents
San Jose, California, United States
Pages: 292 - 305  
Year of Publication: 1996
ISBN:0-89791-788-X
Also published in ...
Authors
Amer Diwan  Department of Computer Science, University of Massachusetts, Amherst, MA
J. Eliot B. Moss  Department of Computer Science, University of Massachusetts, Amherst, MA
Kathryn S. McKinley  Department of Computer Science, University of Massachusetts, Amherst, MA
Sponsor
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 6,   Downloads (12 Months): 30,   Citation Count: 37
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/236337.236367
What is a DOI?

ABSTRACT

To use modern hardware effectively, compilers need extensive control-flow information. Unfortunately, the frequent method invocations in object-oriented languages obscure control flow. In this paper, we describe and evaluate a range of analysis techniques to convert method invocations into direct calls for statically-typed object-oriented languages and thus improve control-flow information in object-oriented languages. We present simple algorithms for type hierarchy analysis, aggregate analysis, and interprocedural and intraprocedural type propagation. These algorithms are also fast, O(|procedures| * ∑pprocedure np * vp) worst case time (linear in practice) for our slowest analysis, where np is the size of procedure p and vp is the number of variables in procedure p, and are thus practical for use in a compiler. When they fail, we introduce cause analysis to reveal the source of imprecision and suggest where more powerful algorithms may be warranted. We show that our simple analyses perform almost as well as an oracle that resolves all method invocations that invoke only a single procedure.


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.

1
 
2
 
3
4
5
 
6
7
8
9
 
10
 
11
Digital Equipment Corporation. DEC3000 300/400/500/600/800 Models: System Programmer's Manual, first printing edition, September 1993.
12
13
 
14
Mary Wolcott Hall. Managing InterproceduralOptimizat PhD thesis, Rice University, Houston, Texas, April 1991.
15
 
16
Bill Kalsow and Eric Muller. SRC Modula-3 Version 3.5. Systems Research Center, Digital Equipment Corporatior Palo Alto, CA, 1995.
 
17
J.B. Kam and J. D. Ullman. Global data flow analysis an iterative algorithms. Journal of the ACM, 7(3):305-318, 1
 
18
 
19
20
 
21
Hemant Pande and Barbara G Ryder. Static type determination and aliasing for C++. Technical Report LCSR-TR-250, Rutgers University, July 1995.
22
 
23

CITED BY  37

Collaborative Colleagues:
Amer Diwan: colleagues
J. Eliot B. Moss: colleagues
Kathryn S. McKinley: colleagues