Technical reports
A persistent storage system for Poly and ML
David C.J. Matthews
January 1987, 16 pages
DOI: 10.48456/tr-102
Abstract
The conventional strategy for implementing interactive languages has been based on the use of a “workspace” or “core-image” which is read in at the start of a session and written out at the end. While this is satisfactory for small systems it is inefficient for large programs. This report describes how an idea originally invented to simplify database programming, the persistent store, was adapted to support program development in an interactive language.
Poly and ML are both semi-functional languages in the sense that they allow functions as first class objects but they have variables (references) and use call-by-value semantics. Implementing such languages in a persistent store poses some problems but also allows optimisations which would not be possible if their type systems did not apply certain constraints.
The basic system is designed for single-users but the problems of sharing data between users is discussed and an experimental system for allowing this is described.
Full text
PDF (0.8 MB)
BibTeX record
@TechReport{UCAM-CL-TR-102, author = {Matthews, David C.J.}, title = {{A persistent storage system for Poly and ML}}, year = 1987, month = jan, url = {https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-102.pdf}, institution = {University of Cambridge, Computer Laboratory}, doi = {10.48456/tr-102}, number = {UCAM-CL-TR-102} }