% File:    kiev90-6.tex
% Author:  F. Matthes
% Date:    28.2.1991
%

\section{Research Issues}

In addition to the generic, general-purpose language features described
in section~3 there seem to emerge arguments for rather specific and
novel language concepts that provide direct support for essential
interactions in DBAS architectures like those of
Figure~\ref{components}.  Examples are languages with reflection
\cite{SFSS90} that enable programs to analyse their own type and
function declarations and to augment their process environment by newly
created types and functions derived from this analysis. For example, the
linker in Figure~\ref{components} supports the (constrained) extension
of the process and persistent environment by value and type bindings.

We are currently investigating primitive language mechanisms supporting
the following three specific tasks in DBAS programming:

\begin{description}
\item[Atomic Updates:] Experience with the implementation of
database systems and database programming languages indicates that a
wide range of transaction models, communication mechanisms and recovery
mechanisms can be reduced to a small set of primitive operations on
shared, mutable values \cite{LCDS87,WeLi81}.

\item[Locality Control:] The evolution and size of shared persistent
data structures requires careful control over the generation of dynamic
dependencies between complex data structures and the functions defined
over them. In particular, the existence of \e{higher-order} functions
and \e{references} (object with identity) calls for binding control
mechanisms beyond static scoping. As described in \cite{MOS91},
traditional polymorphic typing schemes can be extended not only to
reason about the structure, but also about the \e{locality} of data
objects in structured object stores \cite{Moss89}.

\item[Environment Management:] As argued in \cite{AtMo85} and
\cite{Dea89}, purely static binding and type checking mechanisms are 
insufficient for some of the applications described in the previous
section. \e{Environments} as first-class language objects with specific
operations for environment extension and modification may provide the
the flexibility required in evolving DBAS.
\end{description}
