ACM Home Page
Please provide us with feedback. Feedback
Bootstrapping one-sided flexible arrays
Full text PdfPdf (186 KB)
Source International Conference on Functional Programming archive
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming table of contents
Pittsburgh, PA, USA
Pages: 2 - 13  
Year of Publication: 2002
ISBN:1-58113-487-8
Also published in ...
Author
Ralf Hinze  Universität Bonn, Bonn, Germany
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 0,   Downloads (12 Months): 30,   Citation Count: 0
Additional Information:

abstract   references   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/581478.581480
What is a DOI?

ABSTRACT

The abstract data type one-sided flexible array, also called random-access list, supports look-up and update of elements and can grow and shrink at one end. We describe a purely functional implementation based on weight-balanced multiway trees that is both simple and versatile. A novel feature of the representation is that the running time of the operations can be tailored to one's needs---even dynamically at array-creation time. In particular, one can trade the running time of look-up operations for the running time of update operations. For instance, if the multiway trees have a fixed degree, the operations take θ(log n) time, where n is the size of the flexible array. If the degree doubles levelwise, look-up speeds up to θ(sqrtlog n) while update slows down to θ(2sqrt log n). We show that different tree shapes can be conveniently modelled after mixed-radix number systems.


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
W. Braun and M. Rem. A logarithmic implementation of flexible arrays. Memorandum MR83/4, Eindhoven University of Technology, 1983.
 
3
 
4
5
 
6
 
7
Ralf Hinze. Numerical representations as higher-order nested datatypes. Technical Report IAI-TR-98-12, Institut für Informatik III, Universität Bonn, December 1998.
 
8
Ralf Hinze. Constructing red-black trees. In Chris Okasaki, editor, Proceedings of the Workshop on Algorithmic Aspects of Advanced Programming Languages, WAAAPL'99, Paris, France, pages 89--99, September 1999. The proceedings appeared as a technical report of Columbia University, CUCS-023-99, also available from http://www.cs.columbia.edu/~cdo/waaapl.html.
 
9
 
10
Sören Holmström. A simple and efficient way to handle large datastructures in applicative languages. In Proceedings of the Joint SERC/Chalmers Workshop on Declarative Programming, University College, London, UK, 1983.
 
11
12
 
13
14
15
 
16
 
17
Chris Okasaki and Andy Gill. Fast mergeable integer maps. In The 1998 ACM SIGPLAN Workshop on ML, Baltimore, Maryland, pages 77--86, 1998.
 
18
 
19
Simon Peyton Jones {editor}, John Hughes {editor}, Lennart Augustsson, Dave Barton, Brian Boutel, Warren Burton, Simon Fraser, Joseph Fasel, Kevin Hammond, Ralf Hinze, Paul Hudak, Thomas Johnsson, Mark Jones, John Launchbury, Erik Meijer, John Peterson, Alastair Reid, Colin Runciman, and Philip Wadler. Standard libraries for the Haskell 98 programming language. Available from http://www.haskell.org/definition/, February 1999.
20
21