Adding Persistence to the Oberon System

Abstract

Oberon and Oberon-2 are general purpose programming languages in the tradition of Pascal and Modula-2.
Oberon is also a modular, single-threaded operating system for single-user operation of workstations. It is used in
daily work as well as in programming courses. One missing point of Oberon is the existence of database
functionality such as persistence or recovery. This report describes the project Oberon-D, which adds database
functionality to the Oberon system. The first step of this project is to include persistence, i.e., the object's
property to outlive the program that created it. Persistence in the Oberon system is obtained by a persistent heap
on the disk. Persistent objects are on this heap, while transient objects are in the transient memory. Transient and
persistent objects can access each other mutually. Accessing a persistent object leads to loading the object into the
transient heap. If persistent objects are not accessed from transient objects any more, they are written back to the
persistent heap. Persistent objects, which are not referenced by other persistent objects, are reclaimed by a
garbage collector. We show the use of persistence as well as its implementation.

Paper at the Joint Modular Languages Conference, Hagenberg, 1997.

Published in Lecture Notes in Computer Science 1204, Springer-Verlag, 1997.