\subsection{Support for Abstract Machine Definition}
\label{amd}

The second editor specified and generated by aid of the synthesizer generator
supports, compared to DBPL-USE, somewhat different objectives.

An abstract machine depends more heavily on environment knowledge than a DBPL
module, mainly on knowledge about the abstract machine which is refined to the
one under consideration. Furthermore, the close relationship between abstract
machines which is not checked, as it is the case in DBPL, by a compiler, makes
the generation of information about this relationship more vital. Third, the
language of abstract machines is neither as complex as DBPL\footnote{Nevertheless
it is an extremely powerful language.} nor as rigorous defined syntactically
and semantically as compilable programming languages.

Therefore the focus of the support provided by AM-USE is the usage of environment
knowledge and the generation of refinement information. This topics are discussed
further within section~\ref{alse}. The more conventional aspects of language
sensitive editing with respect to the language of abstract machines are
discussed within the current section.

\vspace{0.5ex}

The syntactic and semantic {\em control\/} imposed by AM-USE on the creation of
abstract machines incorporates the following features:

AM-USE provides full syntax check as well as menue driven insertions of text
patterns similar to those discussed in connection with DBPL-USE within
section~\ref{dbpl-spec}.

Since the definition and redefinition of operators is possible within the
abstract machine formalism, some aspects of the expression language which
normally would belong to the language's syntax, can not be checked by the
{\em syntactic} component of AM-USE. Therefore, the {\em semantic} component
of AM-USE has to provide informations not only about newly introduced {\em
identifiers} but also about various symbol classes including {\em operators}.
Similarly, the results of semantic checks are dependent not only on the
meaning of identifiers but also on the meaning of operators (that is, the
meaning of operators is not fixed). For that reason the semantics of all
operators is not hard coded but stored within attributes\footnote{Abstract
machines have a {\em standard context} where operators are defined.}.
This makes AM-USE very flexible with respect to changes within the language
of abstract machines. Even in cases which are normally considered as
syntactic alterations, AM-USE has not to be rewritten.

With this preliminaries in mind, we are going to take a closer look on the
language of abstract machines and to describe some functions of AM-USE more
deeply.

\subsubsection{The Language of Abstract Machines and Generalized
	Substitutions}

\input{pit}

\subsubsection{Basic Functions of AM-USE}

syntactic component:

semantic component:

transformation component:
