Skip to main content

Experiments with destructive updates in a lazy functional language (extended abstract)

  • Chapter
Functional Programming, Glasgow 1993

Part of the book series: Workshops in Computing ((WORKSHOPS COMP.))

  • 53 Accesses

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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).

    Google Scholar 

  2. L. Augustsson and T. Johnsson. The Chalmers Lazy-ML compiler. The computer journal, 32(2):127–141, Apr 1989.

    Article  Google Scholar 

  3. 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.

    Google Scholar 

  4. 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.

    Google Scholar 

  5. 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.

    Google Scholar 

  6. 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.

    Google Scholar 

  7. 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.

    Google Scholar 

  8. 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.

    Google Scholar 

  9. 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.

    Google Scholar 

  10. 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.

    Google Scholar 

  11. P. Hudak. A semantic model of reference counting and its abstraction. In Lisp and functional programming, pages 351–363, Cambridge, Massachusetts, Aug 1986. ACM.

    Google Scholar 

  12. P. Hudak. Conception, evolution, and application of functional programming languages. ACM Computing Surveys, 21(3):359–411, Sep 1989.

    Article  Google Scholar 

  13. 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.

    Google Scholar 

  14. 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.

    Google Scholar 

  15. 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.

    Google Scholar 

  16. 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.

    MATH  Google Scholar 

  17. D. A. Schmidt. Detecting global variables in denotational specifications. ACM transactions on programming languages and systems, 7(2):299–310, Apr 1985.

    Article  MATH  Google Scholar 

  18. 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.

    Google Scholar 

  19. W. R. Stoye. The implementation of functional programming languages using custom hardware. PhD thesis, Univ. of Cambridge, England, Dec 1985. Technical report 81.

    Google Scholar 

  20. 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.

    Google Scholar 

  21. P. L. Wadler. The concatenate vanishes. Internal report, Dept. of Comp. Sci, Univ. of Glasgow, Scotland, Dec 1987.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics