Skip to main content

Persistent Haskell

  • Conference paper
  • First Online:
Computer Aided Systems Theory — EUROCAST 2001 (EUROCAST 2001)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2178))

Included in the following conference series:

Abstract

Persistent programming offers the prospect of seamless integration of programs with long-lived data, offering the prospect of constructing systems that allow more rapid program development, and also simplifying the process of writing applications whose purpose is to handle long-lived data.

While there have been some previous attempts to produce persistent functional languages, the majority of these have been interpreted, and performance has generally been seriously compromised. It has therefore become something of a shibboleth that persistence cannot be implemented efficiently in a purely functional language. This paper offers the first systematic study of this claim.

This paper describes the first-ever implementation of orthogonal persistence for a compiled purely functional language, based on an existing St Andrews persistent object store. Preliminary performance results show that it is possible to implement orthogonal persistence efficiently and there is hope that the result is more efficient than more straightforward approaches such as binary I/O.

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 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.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. A. Albano, L. Cardelli and R. Orsini Galileo: A Strongly Typed Interactive Conceptual LanguageACM ToDS Vol. 10, No. 2, 1985, pp. 230–260.

    Article  Google Scholar 

  2. A.L. Brown and R. Morrison A Generic Persistent Object Store, Software Engineering Journal, Vol. 7, pp. 111–114, 1992.

    Article  Google Scholar 

  3. M.P. Atkinson, P. Bailey, K.J. Chisholm, W.P. Cockshott and R. Morrison An Approach to Persistent Programming, Computer Journal, Vol. 26, No.4, 1983, pp. 360–365.

    MATH  Google Scholar 

  4. L. Cardelli Amber, AT & T Bell Labs Report, 1983 and In Combinators and Functional Programming Languages ed. G. Cousineau, P-L. Curien and B. Robinet, LNCS 242, Springer-Verlag, 1985.

    Google Scholar 

  5. A.J.T. Davie and K. Hammond Functional Hypersheets, Proc. 1996 Glasgow Workshop on Functional Programming, Ullapool, Scotland, Phil Trinder (ed), TR-1997-1, January 1997.

    Google Scholar 

  6. A.J.T. Davie and D.J. McNally PCASE-A Persistent Lazy Version of an SECD Machine with a Flat Environment Proc. TENCON’ 89, Bombay, India, 1989, pp. 864–872 and Research Report CS/92/7, Department of Mathematical and Computational Sciences, St.Andrews University, 1992.

    Google Scholar 

  7. L. Daynes and M.P. Atkinson Main-Memory Management to support Orthogonal Persistence for Java The Second International Workshop on Persistence and Java (PJW2), Half Moon Bay, California, August 1997.

    Google Scholar 

  8. A. Dearle and F. Brown Private Communication.

    Google Scholar 

  9. K. Hammond, H-W. Loidl and A. Partridge Visualising Granularity in Parallel Programs: A Graphical Winnowing System for Haskell In HPFC’ 95-High Perf. Functional Computing, pp. 208–221, Denver, CO, 1995.

    Google Scholar 

  10. K. Hammond, S.L. Peyton Jones and P. Wadler Unpublished Internal report, University of Glasgow Department of Computer Science.

    Google Scholar 

  11. E. W. Karlsen Tool Integration in a Functional Setting Forthcoming PhD Thesis, University of Bremen.

    Google Scholar 

  12. E. W. Karlsen, B. Krieg-Brückner, O. Traynor The PROSPECTRA System: A Unified Development Framework In: M. Nivat, C. Rattray, T. Rus, G. Scollo (ed.): Algebraic Methodology and Software Technology (AMAST’91), Workshop in Computing, Springer-Verlag, London (1992) pp. 421–433.

    Google Scholar 

  13. X. Leroy and M. Mauny Dynamics in ML J. Functional Programming Vol. 3, No. 4, pp. 431–463, 1993.

    Google Scholar 

  14. D.C.J. Matthews A Persistent Storage System for Poly and ML Edinburgh University Department of Computer Science, Laboratory for Foundations of Computer Science Report ECSLFCS-95-335-3a, 1995.

    Google Scholar 

  15. D.C.J. Matthews Progress with Persistence in Poly and Poly/ML Edinburgh University Department of Computer Science, Laboratory for Foundations of Computer Science Report ECSLFCS-95-335-3b, 1995.

    Google Scholar 

  16. D.J. McNally Models for Persistence in Lazy Functional Programming Systems Ph.D. Thesis, St.Andrews University, Department of Mathematical and Computational Sciences Research Report CS/93/9, 1993.

    Google Scholar 

  17. R. Morrison, A. Brown, R.C.H. Connor and A. Dearle The Napier88 Reference Manual University of St.Andrews Dept. Comp. Sci. Persistent Programming Research Report PPRR-77-89, 1989.

    Google Scholar 

  18. J. Peterson, K. Hammond et al. Report on the Programming Language Haskell, Version 1.3 Technical Report YALE/DCS/RR-1106, Department of Computing Science, Yale University, May 1996-available at http://haskell.cs.yale.edu/haskell-report.

  19. S.L. Peyton Jones Implementing Lazy Functional Languages on Stock Hardware: The Spineless Tagless G-machine J. Functional Programming Vol. 2, No. 2, 1992, pp. 127–202.

    Article  MATH  Google Scholar 

  20. M. Pil First Class File I/O Proc. 8th Intl. Workshop on Implementation of Functional Languages, Bonn, LNCS 1268, pp. 233–246, Springer Verlag, 1996.

    Google Scholar 

  21. M. Pil Dynamic Types and Type Dependent Functions These Proceedings

    Google Scholar 

  22. A. Printezis, M. Atkinson, L. Daynes, S. Spence and P. Bailey The Design of a new Persistent Object Store for PJama The Second International Workshop on Persistence and Java (PJW2), Half Moon Bay, California, August 1997.

    Google Scholar 

  23. F. Reig Personal Communication, 1998.

    Google Scholar 

  24. M. Shields, T. Sheard and S. Peyton Jones Dynamic Typing as Staged Type Inference POPL’ 98-25th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 289–302, San Diego, 1998.

    Google Scholar 

  25. P. Trinder, K. Hammond, J.S. Mattson Jr., A.S. Partridge and S.L. Peyton Jones GUM: a Portable Parallel Implementation of Haskell IIn Programming Languages Design and Implementation, PLDI’ 96, pp. 79–88, Philadelphia, PA, 1996.

    Google Scholar 

  26. D.A. Turner A New Implementation Technique for Applicative Languages.

    Google Scholar 

  27. M. van Eekelen and M. Plasmeijer Concurrent Clean 1.0 Language Report Computing Science Institute, University of Nijmegen, http://www.cs.kun.nl/clean/Clean.Cleanbook.html.

  28. M. Wallace Type-Checked Message-Passing between Functional Processes In Turner, Hammond, and Sansom, editors, Glasgow functional programming workshop, pp. 245–254, BCS Workshops in Computing, Springer-Verlag, Sept 1994.

    Google Scholar 

  29. M. Wallace and C. Runciman The Bits Between The Lambdas: Binary Data in a Lazy Functional Language To appear in the ACM International Symposium on Memory Management (IWMM’ 98), Vancouver, Canada, Oct 1998.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2001 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Quintela, J., Sánchez, J.J. (2001). Persistent Haskell. In: Moreno-Díaz, R., Buchberger, B., Luis Freire, J. (eds) Computer Aided Systems Theory — EUROCAST 2001. EUROCAST 2001. Lecture Notes in Computer Science, vol 2178. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45654-6_50

Download citation

  • DOI: https://doi.org/10.1007/3-540-45654-6_50

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-42959-3

  • Online ISBN: 978-3-540-45654-4

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics