A transformation language is a computer language designed to transform some input text in a certain formal language into a modified output text that meets some specific goal.

Program transformation systems such as Stratego/XT, TXL, Tom, DMS, and ASF+SDF all have transformation languages as a major component. The transformation languages for these systems are driven by declarative descriptions of the structure of the input text (typically a grammar), allowing them to be applied to wide variety of formal languages and documents.

Macro languages are a kind of transformation languages to transform a meta language into specific higher programming language like Java, C++, Fortran or into lower-level Assembly language.

In the model-driven engineering technical space, there are model transformation languages (MTLs), that take as input models conforming to a given metamodel and produce as output models conforming to a different metamodel. An example of such a language is the QVT OMG standard.

There are also low-level languages such as the Lx family implemented by the bootstrapping method. The L0 language may be considered as assembler for transformation languages. There is also a high-level graphical language built on upon Lx called MOLA.

There are a number of XML transformation languages. These include Tritium, XSLT, XQuery, STX, FXT, XDuce, CDuce, HaXml, XMLambda, and FleXML.

See also

Concepts:

  • bidirectional transformation
  • data conversion
  • data element
  • data mapping
  • data migration
  • data transformation
  • metadata
  • model transformation
  • graph transformation
  • refinement (contrast)

Languages and typical transforms:

  • ATL
  • AWK (tabular data transforms)
  • Identity transform
  • QVT
  • TXL (general)
  • XQuery (XML)
  • XSLT (XML)

References