Department of Computer Science and Technology

Technical reports

A persistent storage system for Poly and ML

David C.J. Matthews

January 1987, 16 pages

DOI: 10.48456/tr-102


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

  author =	 {Matthews, David C.J.},
  title = 	 {{A persistent storage system for Poly and ML}},
  year = 	 1987,
  month = 	 jan,
  url = 	 {},
  institution =  {University of Cambridge, Computer Laboratory},
  doi = 	 {10.48456/tr-102},
  number = 	 {UCAM-CL-TR-102}