The term context, as used below, has three different meanings.
A context may be:
a set of objects with a logical structure
an environment for linking and loading
an environment for unloading and unlinking.
The use of contexts by DBL has the following advantages:
Multiple copies of the same program can be loaded into different contexts.
Parts of a comprehensive application can be loaded into different contexts. In each individual context external references are resolved separately. Each sub-application in a context can therefore be loaded and run as an autonomous entity. In this way it is possible, for example, to load and start the individual modules of a runtime system in separate contexts.
Parts of an application that belong to a context can be unloaded with a single call.
Identically named symbols in different contexts do not provoke name conflicts because each context maintains its own symbol table.
The various context concepts are explained in more detail below.