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.
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
A. Albano, L. Cardelli and R. Orsini Galileo: A Strongly Typed Interactive Conceptual LanguageACM ToDS Vol. 10, No. 2, 1985, pp. 230–260.
A.L. Brown and R. Morrison A Generic Persistent Object Store, Software Engineering Journal, Vol. 7, pp. 111–114, 1992.
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.
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.
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.
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.
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.
A. Dearle and F. Brown Private Communication.
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.
K. Hammond, S.L. Peyton Jones and P. Wadler Unpublished Internal report, University of Glasgow Department of Computer Science.
E. W. Karlsen Tool Integration in a Functional Setting Forthcoming PhD Thesis, University of Bremen.
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.
X. Leroy and M. Mauny Dynamics in ML J. Functional Programming Vol. 3, No. 4, pp. 431–463, 1993.
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.
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.
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.
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.
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.
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.
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.
M. Pil Dynamic Types and Type Dependent Functions These Proceedings
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.
F. Reig Personal Communication, 1998.
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.
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.
D.A. Turner A New Implementation Technique for Applicative Languages.
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.
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.
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.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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