ACM Home Page
Please provide us with feedback. Feedback
A randomized implementation of multiple functional arrays
Full text PdfPdf (1.28 MB)
Source Conference on LISP and Functional Programming archive
Proceedings of the 1994 ACM conference on LISP and functional programming table of contents
Orlando, Florida, United States
Pages: 173 - 184  
Year of Publication: 1994
ISBN:0-89791-643-3
Also published in ...
Author
Sponsors
SIGACT: ACM Special Interest Group on Algorithms and Computation Theory
SIGART: ACM Special Interest Group on Artificial Intelligence
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 12,   Downloads (12 Months): 22,   Citation Count: 3
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/182409.156779
What is a DOI?

ABSTRACT

The array update problem in the implementation of a purely functional language is the following: once an array is updated, both the original array and the newly updated one must be preserved to maintain referential transparency. Previous approaches have mainly based on the detection or enforcement of single-threaded accesses to an aggregate, by means of compiler-time analyses or language restrictions. These approaches cannot deal with aggregates which are updated in a multi-threaded manner.Baker's shallow binding scheme can be used to implement multi-threaded functional arrays. His scheme, however, can be very expensive if there are repeated alternations between long binding paths. We design a scheme that fragments binding paths randomly. The randomization scheme is on-line, simple to implement, and its expected performance comparable to that of the optimal off-line solutions. All this is achieved without using compiler-time analyses, and without restricting the languages.The expected performance of the randomization scheme is analyzed in details, and some preliminary results are shown. Applications of the randomization technique to other functional aggregates, as well as its implications, are briefly outlined.


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
Lennaxt Augustsson and Thomas Johnsson. Lazy ML user's manual Version 0.999.J, July 1994. Draft, distributed with the Chalmers Lazy ML compiler.
5
6
7
 
8
9
 
10
 
11
Robert Hood and Robert Melville. Real-time queue operations in pure Lisp. Information Processing Letters, 13(2):50- 53, 1981.
12
 
13
Thomas Johnsson. Personal communication, October 1993.
 
14
Herbert Kuchen. Personal communication, September 1993.
15
16
17
 
18
Colin Runciman and David Wakeling. Heap profiling of lazy functional programs. Journal of Functional Programming, 3(2):217-245, April 1993.
 
19
20
21
 
22
Berry Schoenmakers. Data Structures and Amortized Complexity in a Functional Setting. Phi) thesis, Deaprtment of Mathematics and Computing Science, Eindhoven University of Tectmology, September 1992.
23