Description
OPTRAN [LMW88] is a specification language for attributed
tree transformation written by Reinhard Wilhelm at the
University of Saarlandes in the early 1980's.
A
transformation unit consists of a tree grammar specifying the
abstract syntax of the language, semantic rules that specify attribute
dependencies and transformation rules. Transformation rules
correspond to simple rewrite rules that are extended such that
application can depend on attribute values and such that attribute
values can be changed as part of a transformation. A few simple
strategies (bottom-up, top-down, left-to-right, right-to-left) are
available to control application of rules. Furthermore, some
heuristics are used to resolve remaining ambiguities (e.g., use most
specific rule or use textual order of rules). Patterns in
transformation rules are static (no contexts) and linear. Attributes
are reevaluated after a transformation rule is applied.
The language is implemented in Pascal and specifications are also
specified using Pascal. The paper [LMW88] discusses the disadvantages
of such an embedding of a
DSL in a general-purpose language and
remarks that a functional language would solve several of the problems
of this embedding.
References
See Also
Other
TransformationSystems