Program-Transformation.Org: The Program Transformation Wiki

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.


See Also

Other TransformationSystems