|
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
|
Ole Agesen , Urs Hölzle, Type feedback vs. concrete type inference: a comparison of optimization techniques for object-oriented languages, Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications, p.91-107, October 15-19, 1995, Austin, Texas, United States
|
 |
2
|
|
 |
3
|
Alexander Aiken , Edward L. Wimmers , T. K. Lakshman, Soft typing with conditional types, Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.163-173, January 16-19, 1994, Portland, Oregon, United States
[doi> 10.1145/174675.177847]
|
| |
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
|
H. Abelson , R. K. Dybvig , C. T. Haynes , G. J. Rozas , N. I. Adams, IV , D. P. Friedman , E. Kohlbecker , G. L. Steele, Jr. , D. H. Bartley , R. Halstead , D. Oxley , G. J. Sussman , G. Brooks , C. Hanson , K. M. Pitman , M. Wand , William Clinger , Jonathan Rees, Revised report on the algorithmic language scheme, ACM SIGPLAN Lisp Pointers, v.IV n.3, p.1-55, July, 1991
[doi> 10.1145/382130.382133]
|
| |
13
|
|
 |
14
|
|
| |
15
|
CURRY, H. B. AND FEYS, R. 1958. Combinatory Logic. Vol. 1. North-Holland, Amsterdam.
|
 |
16
|
|
 |
17
|
Jeffrey Dean , Craig Chambers , David Grove, Selective specialization for object-oriented languages, Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation, p.93-102, June 18-21, 1995, La Jolla, California, United States
|
 |
18
|
Amer Diwan , J. Eliot B. Moss , Kathryn S. McKinley, Simple and effective analysis of statically-typed object-oriented programs, Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.292-305, October 06-10, 1996, San Jose, California, United States
|
| |
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
|
David Grove , Jeffrey Dean , Charles Garrett , Craig Chambers, Profile-guided receiver class prediction, Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications, p.108-123, October 15-19, 1995, Austin, Texas, United States
|
 |
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
|
John Plevyak , Andrew A. Chien, Precise concrete type inference for object-oriented languages, Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications, p.324-340, October 23-28, 1994, Portland, Oregon, United States
|
 |
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.
|
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...
Peer to Peer - Readers of this Article have also read:
-
Data structures for quadtree approximation and compression
Communications of the ACM
28, 9
Hanan Samet
-
A hierarchical single-key-lock access control using the Chinese remainder theorem
Proceedings of the 1992 ACM/SIGAPP Symposium on Applied computing
Kim S. Lee
, Huizhu Lu
, D. D. Fisher
-
The GemStone object database management system
Communications of the ACM
34, 10
Paul Butterworth
, Allen Otis
, Jacob Stein
-
An intelligent component database for behavioral synthesis
Proceedings of the 27th ACM/IEEE Design Automation Conference on
Gwo-Dong Chen
, Daniel D. Gajski
-
Putting innovation to work: adoption strategies for multimedia communication systems
Communications of the ACM
34, 12
Ellen Francik
, Susan Ehrlich Rudman
, Donna Cooper
, Stephen Levine
|