Tools

"... In an orthogonally persistent programming system the longevity of data is independent of its other attributes. The advantages of persistence may be seen primarily in the areas of data modelling and protection resulting from simpler semantics and reduced complexity. These have been verified by the fi ..."

In an orthogonally persistent programming system the longevity of data is independent of its other attributes. The advantages of persistence may be seen primarily in the areas of data modelling and protection resulting from simpler semantics and reduced complexity. These have been verified by the first implementations of persistent languages, typically consisting of a persistent store, a run-time system and a compiler that produces programs that may access and manipulate the persistent environment. This thesis demonstrates that persistence can deliver many further benefits to the programming process when applied to software construction and execution. To support the thesis, a persistent environment has been extended with all the components necessary to support program construction and execution entirely within the persistent environment. This is the first known example of a strongly-typed integrated persistent programming environment. The keystone of this work is the construction of ...

"... 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 cod ..."

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. Tw...

"... A new programming system --- STAPLE (Statically Typed Applicative Persistent Language Environment) --- which integrates a lazy functional programming language and a persistent store is described. The motivation for introducing orthogonal persistence into a functional setting is given. Two models for ..."

A new programming system --- STAPLE (Statically Typed Applicative Persistent Language Environment) --- which integrates a lazy functional programming language and a persistent store is described. The motivation for introducing orthogonal persistence into a functional setting is given. Two models for achieving this integration are then described together with a discussion of the way laziness interacts with persistence and the benefits resulting from this interaction. In the first model, a system of persistent modules allows the programmer to create persistent values by naming them in a module. In the second model, a combination of stream I/O and a dynamic type allows functional programs to manipulate values already in the persistent store and to allow dynamically created values to become persistent. 1 1 Introduction The integration of persistence and lazy functional programming languages promises to reduce the complexity and improve the efficiency of functional programs. In addition...

"... Hyper-programming is a style of programming applicable to strongly typed persistent systems [ABC+83], in which a source program may contain direct links to language values as well as textual program constructs. It represents a form of hyper-media [EE68, YMV85, Bro86, Big88, Shn89, DMD92] applied to ..."

Hyper-programming is a style of programming applicable to strongly typed persistent systems [ABC+83], in which a source program may contain direct links to language values as well as textual program constructs. It represents a form of hyper-media [EE68, YMV85, Bro86, Big88, Shn89, DMD92] applied to the program development process, in which the

...nguage we believe that the techniques described could be applied to other persistent languages, examples of which include Amber [Car85], Galileo [ACO85], persistent Quest [MMS92], E [RC90] and STAPLE =-=[DM90]-=-. Section 2 explains in more detail the concept of hyper-programming and its benefits listed above; Section 3 identifies several varieties of supporting technology required to implement a hyper-progra...

"... In recent years, research into persistent programming systems has led to the design of sophisticated database programming languages such as Galileo, PS-algol, and Napier. These languages provide a wide range of abstraction facilities such as abstract data types, polymorphism and first class procedur ..."

In recent years, research into persistent programming systems has led to the design of sophisticated database programming languages such as Galileo, PS-algol, and Napier. These languages provide a wide range of abstraction facilities such as abstract data types, polymorphism and first class procedures that are integrated within a single persistent store. The development of these systems has required the design of a variety of new implementation techniques. For example, the development of the Napier system required the design of reusable compiler componentry, an intermediate language, an abstract machine and a persistent object store, all of which are integrated

... the generic architecture has been employed to provide persistence to a wide variety of programming paradigms including imperative programming with first class procedures [10], functional programming =-=[11]-=-, typefull programming [12] and object-oriented database programming [13]. Consequently, it is argued that the generic architecture provides a cost-effective technique for integrating persistence and ...