Abstract
Although there is a great deal of academic interest in functional languages, there are very few large-scale functional applications. The poor interface to the file system seems to be a major factor preventing functional languages being used for large-scale programming tasks. The interfaces provided by some widely-used languages are described and some problems encountered with using these interfaces to access persistent data are discussed. Three means of improving the persistent data manipulation facilities of functional languages are considered: an improved interface to the file system, including a good binary file implementation; an interface to a database; and the provision of orthogonal persistence. Concrete examples are given using the functional programming language, Haskell.
This work is supported by the SERC GRASP and Bulk Data Types Projects, a Royal Society of Edinburgh Fellowship, and a Commonwealth Scholorship.
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
Atkinson M.P. Programming Languages and Databases, in Proceedings of the 4th International Conference on Very Large Databases, 1978.
Augustsson L. A compiler for lazy ML, in Proceedings of the ACM Symposium on Lisp and Functional Programming, Austin Texas, USA, August 1984.
Bloss A. Update analysis and the efficient implementation of functional aggregates, in Proceedings of the 1989 IFIP Conference on Functional Programming Languages and Computer Architecture, London, September, 1989.
Hudak P. Wadler P. Peyton Jones SL. (Eds) Report on the Programming Language Haskell, Version 1.2, ACM SIGPLAN Notices, 27(5), May 1992.
McNally D. Joosten S. Davie A. Persistent Functional Programming, in Proceedings of the 4th International Workshop on Persistent Object Systems, Martha’s Vineyard, Mass., USA, September, 1990.
Matthews D.C.J. A Persistent Storage System for Poly and ML. University of Cambridge Technical Report 102, January, 1987.
Perry N. Hope+C - a continuation extension for Hope+. Internal Report, Department of Computing, Imperial College London, October, 1987.
Peyton Jones S.L. Clack C. Salkild J. Hardie M. GRIP - a high-performance architecture for parallel graph reduction, in Proceedings of the IFIP conference on Functional Programming Languages and Computer Architecture, Portland. Kahn G. (Ed), Springer-Verlag LNCS 274, September,. 1987.
Achten P.M., van Groningen J.H.G. and Plasmeijer M.J. High-level specification of I/O in functional languages, in Functional Programming, Glasgow 1992, Launchbury J. Sansom P.M. (Eds), Springer-Verlag, Workshops in Computing Science, 1992.
Software A.G. NATURAL EXPERT Reference Manual, Version 1.1. 3, 1990.
Trinder P.W. A Functional Database. D.Phil. Thesis, Oxford University, December, 1989. Available as: Technical Monograph PRG-82, Programming Research Group, 8-11 Keble Road, Oxford OX1 3QD, England; Technical Report CSC 90/R10 Dept. of Computing Science, University of Glasgow, Scotland.
Turner D.A. Recursion Equations as a Programming Language in Functional Programming and its Application. Darlington J. Henderson P. Turner D.A. (Eds), Cambridge University Press, 1982.
Turner D.A. Miranda System Manual, Research Software Limited, 1987.
Wadler P. An Introduction to Orwell 4.07, Internal Document, Oxford University Programming Research Group, December, 1987.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1993 British Computer Society
About this paper
Cite this paper
Hammond, K., McNally, D., Sansom, P.M., Trinder, P. (1993). Improving Persistent Data Manipulation for Functional Languages. In: Launchbury, J., Sansom, P. (eds) Functional Programming, Glasgow 1992. Workshops in Computing. Springer, London. https://doi.org/10.1007/978-1-4471-3215-8_7
Download citation
DOI: https://doi.org/10.1007/978-1-4471-3215-8_7
Publisher Name: Springer, London
Print ISBN: 978-3-540-19820-8
Online ISBN: 978-1-4471-3215-8
eBook Packages: Springer Book Archive