| Copy elimination in functional languages |
| Full text |
Pdf
(1.27 MB)
|
| Source
|
Annual Symposium on Principles of Programming Languages
archive
Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
table of contents
Austin, Texas, United States
Pages: 303 - 314
Year of Publication: 1989
ISBN:0-89791-294-2
|
|
Authors
|
|
K. Gopinath
|
Computer Systems Lab, CIS 034, Stanford University, CA
|
|
J. L. Hennessy
|
Computer Systems Lab, CIS 034, Stanford University, CA
|
|
| Sponsors |
|
| Publisher |
|
| Bibliometrics |
Downloads (6 Weeks): 3, Downloads (12 Months): 19, Citation Count: 9
|
|
|
ABSTRACT
Copy elimination is an important optimization for compiling functional languages. Copies arise because these languages lack the concepts of state and variable; hence updating an object involves a copy in a naive implementation. Copies are also possible if proper targeting has not been carried out inside functions and across function calls. Targeting is the proper selection of a storage area for evaluating an expression. By abstracting a collection of functions by a target operator, we compute targets of function bodies that can then be used to define an optimized interpreter to eliminate copies due to updates and copies across function calls. The language we consider is typed lambda calculus with higher-order functions and special constructs for array operations. Our approach can eliminate copies in divide and conquer problems like quicksort and bitonic sort that previous approaches could not handle.
We also present some results of implementing a compiler for a single assignment language called SAL on some small but tough programs. Our results indicate that it is possible to approach a performance comparable to imperative languages like Pascal.
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
|
3.1%. Ellis. A Compiler for VLIW Architectures. PhD thesis, Yale University, December 1984.
|
 |
5
|
|
| |
6
|
|
 |
7
|
|
 |
8
|
|
 |
9
|
|
| |
10
|
Alan Mycroft. A bstracl interpretation and Oplimisin9 lransformations for applicative programs. PhD thesis, Edinburgh University, 1981.
|
| |
11
|
|
| |
12
|
P.Cousot and R.Cousot. Abstract interpretation. In A CM Symposium on Principles of Programming Languages, ACM, Jan 1977.
|
| |
13
|
R.J.M.Hughes. Graph Reduction with Super-combinators. Technical Report, Oxford University PRG Technical Monograph PRG-28, 1982.
|
| |
14
|
d.R.Celoni S.J. and J.L.Hennessy. SAL: A Single. Assignment Language for Parallel Algorithms. Technical Report, Computer Systems Laboratory, Stanford University, July 1981.
|
| |
15
|
Z.G.Mou and P.Hudak. An algebraic model for divideand-conquer and its parallelism. Journal of Supercompuling, 2(3), 1988.
|
| |
16
|
|
|