ACM Home Page
Please provide us with feedback. Feedback
Copy elimination in functional languages
Full text PdfPdf (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
SIGPLAN: ACM Special Interest Group on Programming Languages
SIGACT: ACM Special Interest Group on Algorithms and Computation Theory
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 3,   Downloads (12 Months): 19,   Citation Count: 9
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/75277.75304
What is a DOI?

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

CITED BY  9

Collaborative Colleagues:
K. Gopinath: colleagues
J. L. Hennessy: colleagues