
\section{The Potential of Language Sensitive Technology}
\label{potent}

DAIDA supports the development of data-intensive application software,
based on the observation that the required activities involve several clearly
distinct conceptual levels: requirement specification and representation,
software specification and design, database programming and program
optimization.
Within DAIDA, these multi-level activities are supported by a multi-lingual
environment: the Conceptual Modeling Language (CML), the TAXIS Design Language
(TDL), the Gezeralized Substitution Language of Abstract Machines (GSL)
and the Database Programming Language (DBPL).

Based on the above sketch of the overall architecture, DAIDA activities
can be grouped as follows. A first class of activities takes place {\em
within levels} and utilizes one of the languages in order to specify DAIDA
objects. Second, there are those activities that relate objects {\em between}
neighbouring DAIDA levels and languages; they are provided by the various
mapping assistants \cite{wns}. Finally, the environment supports the
formal documentation of DAIDA activities by means of a global knowledge
representation component which
is uniformly available {\em across} levels (the GKBMS \cite{jjr}).

Central to the DAIDA philosophy is the attempt to document design
decisions on DAIDA objects uniformly across all levels in a globally
accessible knowledge base. A decision is represented, as a first cut, by
the tool used for object creation and manipulation \cite{jjr}. Therefore,
tools should stand for as many as possible semantic and syntactic
characteristics of the objects manipulated by the tool.	Furthermore,
in a polyglot society like the DAIDA user community it is essential
to have advanced text handling support.


The support at hand covers certain aspects of all three classes of activities.
First, the production of language texts under user control is facilitated and
much less error prone by using language sensitive tools. Second, standard
mappings between DAIDA levels can be supplied as defaults. Third, design
documents are generated by utilizing the tools'\ knowledge about design objects.

The productivity in developing and extending design objects benefits from
the following properties of advanced editing instruments:
\begin{description}
	\item[-] The amount of text that has to be entered by the user
		can be extremely reduced without producing cryptic code.
		The user merely selects one of the possible constructs
		at the current position instead of entering the text itself.
		The selection is carried out according to the definition of the
		language.
	\item[-] The editors are working in a tree oriented fashion. A top
		down workstyle in the development of design objects is therefore enforced.
	\item[-] Layout rules and documentation standards may be set throughout
		a user community; the editor is completely responsible
		for the layout of the design objects (this is accomplished by {\em
		unparsing} rules).
	\item[-] Most of the syntactic and many of the semantic details need
		not be in the user's mind.
		On selection of a menue item, a whole text pattern is inserted
		automatically.
	\item[-] Certain semantic errors and all syntax errors are 
		discovered and reported at the earliest possible stage
		(on input). 
	\item[-] References to objects defined in related documents (e.g., higher level
		abstract machines)
		can be checked with respect to their appropriate use 
		(it does not matter whether this feature is provided
		by the language definition or not).
	\item[-] In the context of TDL-DBPL mapping support, CML-representations
		of interim abstract machines are created and prepared to store them
		in the GKBMS.
	\item[-] In the context of database programming,
		the violation of certain access restrictions can be checked.
	\item[-] A wide range of semantic preserving transformations on the
		source text level can be done automatically.
\end{description}
\hspace{1mm}
The acceptance of a software development tool not only depends on the
tool's functionality but also on the quality of the user interface.
Both editors are supported by advanced interactive interfaces\footnote{based
on SunView or, alternatively, X-Windows.} and all operations are triggered
using pop-up menues. Language constructs are inserted in the same manner. 
They can be entered textually as well. Input forms are supplied in order to
enter parameterized commands.
 
Finally, as a positive side effect, the construction of language sensitive
editors gives rise to formal definitions of syntax {\em and} semantics 
of the languages under consideration, yet in a very specific formalism.
\\[2mm]
The remaining part of the chapter is organized in the following way:

Sections \ref{ag} and \ref{sgen} outline the specification technique the
tools are based on, show examples, and characterize the editor generator as
well as common properties of generated editors.
The classes of semantic constraints that can be controlled by the editors
are characterized in section \ref{pl-semantik}. The specific functionality,
short implementation descriptions and a sample session are
given in section \ref{dbpl-use} and section \ref{amd}.
Section \ref{alse} describes the usage of editors to generate design
documents out of design objects as well as informations about relationships
{\em between} design objects.
The paper closes with a short discussion of possible extensions of the tools'\
current implementation stati and future application areas of
language-sensitive technology.      

