Abstract
The aggregate update problem has received considerable attention since pure functional programming languages were recognised as an interesting research topic. There is extensive literature in this area, which comprises over 100 papers. We have tried to apply some of the proposed solutions to our own applications to see how these solutions work in practice. We have been able to use destructive updates but are not convinced that this could have been achieved without application specific knowledge. In particular, no form of update analysis has been reported that is applicable to non-flat domains in polymorphic languages with higher order functions.
It is our belief that a refinement of the monolithic approach towards constructing arrays may be a good alternative to using the incremental approach with destructive updates.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
S. Anderson and P. Hudak. Compilation of Haskell array comprehensions for scientific computing. In Programming language design and implementation, pages 137–149, White Plains, New York, Jun 1990. ACM SIGPLAN notices, 25 (6).
L. Augustsson and T. Johnsson. The Chalmers Lazy-ML compiler. The computer journal, 32(2):127–141, Apr 1989.
A. Bloss. Update analysis and the efficient implementation of functional aggregates. In J. Stoy, editor, 4th Functional programming languages and computer architecture, pages 26–38, London, England, Sep 1989. ACM.
A. Gill, J. Launchbury, and S. L. Peyton Jones. A short cut to deforestation. In 6th Functional programming languages and computer architecture, pages 223–232, Copenhagen, Denmark, Jun 1993. ACM.
K. Hammond, G. L. Burn, and D. B. Howe. Spiking your caches. In K. Hammond and J. T. O’Donnell, editors, Functional programming, pages V.1–V.8, Ayr, Scotland, Jul 1993. Dept. of Comp. Sci, Univ. of Glasgow, Scotland.
P. H. Hartel, H. W. Glaser, and J. M. Wild. Compilation of functional languages using flow graph analysis. Technical report CSTR 91-03, Dept. of Electr. and Comp. Sci, Univ. of Southampton, England, Jan 1991.
P. H. Hartel, H. W. Glaser, and J. M. Wild. On the benefits of different analyses in the compilation of functional languages. In H. W. Glaser and P. H. Hartel, editors, 3rd Implementation of functional languages on parallel architectures, pages 123–145, Southampton, England, Jun 1991. CSTR 91-07, Dept. of Electr. and Comp. Sci, Univ. of Southampton, England.
P. H. Hartel and W. G. Vree. Arrays in a lazy functional language — a case study: the fast Fourier transform. In G. Hains and L. M. R. Mullin, editors, 2nd Arrays, functional languages, and parallel systems (ATABLE), pages 52–66. Publication 841, Dept. d’informatique et de recherche opérationelle, Univ. de Montréal, Canada, Jun 1992.
P. H. Hartel and W. G. Vree. Experiments with destructive updates in a lazy functional language. Technical report CS-93-05, Dept. of Comp. Sys, Univ. of Amsterdam, Jun 1993.
P. Hudak. Arrays, non-determinism, side-effects, and parallelism: A functional perspective. In J. F. Fasel and R. M. Keller, editors, Graph reduction, LNCS 279, pages 312–327, Santa Fé, New Mexico, Sep 1986. Springer-Verlag, Berlin.
P. Hudak. A semantic model of reference counting and its abstraction. In Lisp and functional programming, pages 351–363, Cambridge, Massachusetts, Aug 1986. ACM.
P. Hudak. Conception, evolution, and application of functional programming languages. ACM Computing Surveys, 21(3):359–411, Sep 1989.
P. Hudak, S. L. Peyton Jones, and P. L. Wadler (editors). Report on the programming language Haskell — a non-strict purely functional language, version 1.2. ACM SIGPLAN notices, 27(5):1–162, May 1992.
C. McCrosky, K. Roy, and K. Sailor. Falafel: Arrays in a functional language. In L. M. R. Mullin, M. Jenkins, G. Hains, R. Bernecky, and G. Gao, editors, 1st Arrays, functional languages, and parallel systems (ATABLE), pages 107–123, Boston, Massachusetts, Jun 1990. Kluwer Academic Publishers.
S. L. Peyton Jones and P. L. Wadler. Imperative functional programming. In 20th Principles of programming languages, pages 71–84, Charleston, South Carolina, Jan 1993. ACM.
W. H. Press, B. P. Flannery, S. A. Tekolsky, and W. T. Vetterling. Numerical recipes — The art of scientific computing. Cambridge Univ. Press, Cambridge, England, 1986.
D. A. Schmidt. Detecting global variables in denotational specifications. ACM transactions on programming languages and systems, 7(2):299–310, Apr 1985.
S. Smetsers, E. Barendsen, M. C. J. D. van Eekelen, and M. J. Plasmeijer. Guaranteeing safe destructive updates through a type system with uniqueness information for graphs. Technical report 93-04, Dept. of Comp. Sci, Univ. of Nijmegen, The Netherlands, 1993.
W. R. Stoye. The implementation of functional programming languages using custom hardware. PhD thesis, Univ. of Cambridge, England, Dec 1985. Technical report 81.
P. L. Wadler. A new array operation. In J. F. Fasel and R. M. Keller, editors, Graph reduction, LNCS 279, pages 328–333, Santa Fé, New Mexico, Sep 1986. Springer-Verlag, Berlin.
P. L. Wadler. The concatenate vanishes. Internal report, Dept. of Comp. Sci, Univ. of Glasgow, Scotland, Dec 1987.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1994 British Computer Society
About this chapter
Cite this chapter
Hartel, P.H., Vree, W.G. (1994). Experiments with destructive updates in a lazy functional language (extended abstract). In: O’Donnell, J.T., Hammond, K. (eds) Functional Programming, Glasgow 1993. Workshops in Computing. Springer, London. https://doi.org/10.1007/978-1-4471-3236-3_6
Download citation
DOI: https://doi.org/10.1007/978-1-4471-3236-3_6
Publisher Name: Springer, London
Print ISBN: 978-3-540-19879-6
Online ISBN: 978-1-4471-3236-3
eBook Packages: Springer Book Archive