ACM Home Page
Please provide us with feedback. Feedback
Polymorphic splitting: an effective polyvariant flow analysis
Full text PdfPdf (518 KB)
Source ACM Transactions on Programming Languages and Systems (TOPLAS) archive
Volume 20 ,  Issue 1  (January 1998) table of contents
Pages: 166 - 207  
Year of Publication: 1998
ISSN:0164-0925
Authors
Andrew K. Wright  NEC Research Institute, Princeton, NJ
Suresh Jagannathan  NEC Research Institute, Princeton, NJ
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 5,   Downloads (12 Months): 34,   Citation Count: 16
Additional Information:

abstract   references   cited by   index terms   review   collaborative colleagues   peer to peer  

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/271510.271523
What is a DOI?

ABSTRACT

This article describes a general-purpose program analysis that computes global control-flow and data-flow information for higher-order, call-by-value languages. The analysis employs a novel form of polyvariance called polymorhic splitting that uses let-expressions as syntactic clues to gain precision. The information derived from the analysis is used both to eliminate run-time checks and to inline procedure. The analysis and optimizations have been applied to a suite of Scheme programs. Experimental results obtained from the prototype implementation indicate that the analysis is extremely precise and has reasonable cost. Compared to monovariant flow analyses such as 0CFA, or analyses based on type inference such as soft typing, the analysis eliminates significantly more run-time checks. Run-time check elimination and inlining together typically yield a 20 to 40% performance improvement for the benchmark suite, with some programs running four times as fast.


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
BARENDREGT, H. P. 1984. The Lambda Calculus: Its Syntax and Semantics, Revised ed. Studies in Logic and the Foundations of Mathematics, vol. 103. North-Holland, Amsterdam.
 
7
BEER, R. D. 1987. Preliminary report on a practical type inference system for Common Lisp. Lisp Pointers 1, 2, 5-11.
 
8
BULYONKOV, M. 1984. Polyvariant mixed computation for analyzer programs. Acta Inf. 21, 473-484.
9
10
 
11
12
 
13
14
 
15
CURRY, H. B. AND FEYS, R. 1958. Combinatory Logic. Vol. 1. North-Holland, Amsterdam.
16
17
18
 
19
 
20
 
21
FELLEISEN, M. AND FRIEDMAN, D. P. 1986. Control operators, the SECD-machine, and the A- calculus. In Formal Description of Programming Concepts. Vol. 3. North-Holland, Amsterdam, 193-217.
 
22
FLANAGAN, C. AND FELLEISEN, M. 1995. Set-based analysis for full Scheme and its use in softtyping. Tech. Rep. TR95-253, Rice Univ., Houston, Tex.
 
23
GREENGARD, L. 1987. The Rapid Evaluation of Potential Fields in Particle Systems. ACM Press, New York.
24
25
26
27
 
28
HINDLEY, R. 1969. The principal type-scheme of an object in combinatory logic. Trans. Am. Math. Soc. 146, 29-60.
29
 
30
 
31
32
33
34
 
35
36
 
37
~/{ILNER, R. 1978. A theory of type polymorphism in programming. J. Comput. Syst. Sci. 17, 348-375.
 
38
 
39
40
41
 
42
PANDE, H. D. AND RYDER, B. G. 1994. Static type determination for C++. In Usenix C-I--I- Conference Proceedings. MIT Press, Cambridge, Mass., 85-97.
43
44
 
45
SESTOFT, P. 1988. Replacing function parameters by global variables. M.S. thesis, DIKU, Univ. of Copenhagen, Denmark.
 
46
SHIVERS, O. 1990. Data-flow analysis and type recovery in Scheme. In Topics in Advanced Language Implementation. MIT Press, Cambridge, Mass.
 
47
48
 
49
50
 
51
WRIGHT, A. K. AND DUBA, B. F. 1993. Pattern matching for Scheme. Unpublished document. Available from http:////www.intertrust.com//star//wright//code.html.
 
52
ZHAO, F. 1987. An O(N) algorithm for three-dimensional N-body simulations. M.S. thesis, Dept. of Electrical Engineering and Computer Science, MIT, Cambridge, Mass.

CITED BY  16
 
 
 
 
 


REVIEW

"Zoran D. Budimac : Reviewer"

A program analysis technique for eager (that is, call-by-value) functional languages such as Scheme and ML is presented. The technique can compute control flow and data flow for eager functional programs. Data obtained from the analysis can be  more...

Collaborative Colleagues:
Andrew K. Wright: colleagues
Suresh Jagannathan: colleagues

Peer to Peer - Readers of this Article have also read: