Reflection and New Language Constructs

In the first paper of this session, presented by Alan Kaplan, it was argued that the name management capabilities of current persistent object systems are weak. While some systems have dealt with the problem of uniformity of names for transient and persistent objects, none have adequate mechanisms for controlling the availability of names for use. This paper presented the results of an experiment in providing a general mechanism to support contexts — a flexible set of bindings which can be used for manipulating objects. A context controls which names (transient or persistent) are available for use at any point within a program. Applications have explicit control over context specification, and it is possible to query contexts and reason about them.