Use this URL to cite or link to this record in EThOS:
Title: Models for persistence in lazy functional programming systems
Author: McNally, David J.
Awarding Body: University of St Andrews
Current Institution: University of St Andrews
Date of Award: 1993
Availability of Full Text:
Access from EThOS:
Access from Institution:
Research into providing support for long term data in lazy functional programming systems is presented in this thesis. The motivation for this work has been to reap the benefits of integrating lazy functional programming languages and persistence. The benefits are: the programmer need not write code to support long term data since this is provided as part of the programming system; persistent data can be used in a type safe way since the programming language type system applies to data with the whole range of persistence; the benefits of lazy evaluation are extended to the full lifetime of a data value. Whilst data is reachable, any evaluation performed on the data persists. A data value changes monotonically from an unevaluated state towards a completely evaluated state over time. Interactive data intensive applications such as functional databases can be developed. These benefits are realised by the development of models for persistence in lazy functional programming systems. Two models are proposed which make persistence available to the functional programmer. The first, persistent modules, allows values named in modules to be stored in persistent storage for later reuse. The second model, stream persistence allows dynamic, interactive access to persistent storage. These models are supported by a system architecture which incorporates a persistent abstract machine, PCASE, integrated with a persistent object store. The resulting persistent lazy functional programming system, Staple, is used in prototyping and functional database modelling experiments.
Supervisor: Davie, Tony ; Connor, R. C. H. Sponsor: Not available
Qualification Name: Thesis (Ph.D.) Qualification Level: Doctoral
EThOS ID:  DOI: Not available
Keywords: QA76.7M6 ; Programming languages (Electronic computers)