# Transformation language

> Mediated Wiki article. Canonical URL: https://mediated.wiki/source/Transformation_language
> Markdown URL: https://mediated.wiki/source/Transformation_language.md
> Source: https://en.wikipedia.org/wiki/Transformation_language
> Source revision: 1330545753
> License: Creative Commons Attribution-ShareAlike 4.0 International (https://creativecommons.org/licenses/by-sa/4.0/)

{{Data transformation}}
A '''transformation language''' is a [computer language](/source/computer_language) designed to transform some input text in a certain [formal language](/source/formal_language) into a modified output text that  meets some specific goal{{clarify|date=July 2016}}.

[Program transformation systems](/source/Program_transformation_systems) such as [Stratego/XT](/source/Stratego%2FXT), [TXL](/source/TXL_(programming_language)), [Tom](/source/Tom_(pattern_matching_language)), [DMS](/source/DMS_Software_Reengineering_Toolkit), and [ASF+SDF](/source/ASF%2BSDF_Meta_Environment) 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](/source/Macro_(computer_science)) languages are a kind of transformation languages to transform a meta language into specific higher programming language like [Java](/source/Java_(programming_language)), [C++](/source/C%2B%2B), [Fortran](/source/Fortran) or into lower-level [Assembly language](/source/Assembly_language).

In the [model-driven engineering](/source/model-driven_engineering) technical space, there are [model transformation language](/source/model_transformation_language)s (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](/source/QVT) [OMG](/source/Object_Management_Group) standard.

There are also low-level languages such as the Lx family<ref>[http://lx.mii.lu.lv/ The Lx transformation language set home page] {{Webarchive|url=https://archive.today/20120710031939/http://lx.mii.lu.lv/ |date=2012-07-10 }}. Lx.mii.lu.lv (2007-10-08). Retrieved on 2013-08-10.</ref> implemented by the [bootstrapping method](/source/Bootstrapping_(compilers)). 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.<ref>[http://mola.mii.lu.lv/ MOLA pages]. Mola.mii.lu.lv. Retrieved on 2013-08-10.</ref>

There are a number of [XML transformation language](/source/XML_transformation_language)s. These include [Tritium](/source/Tritium_(programming_language)), [XSLT](/source/XSLT), [XQuery](/source/XQuery), [STX](/source/Streaming_Transformations_for_XML), [FXT](/source/XML_transformation_language), [XDuce](/source/XDuce), CDuce, [HaXml](/source/HaXml), [XMLambda](/source/XMLambda), and FleXML.

==See also==
{{col-begin}}
{{col-break}}
Concepts:
* [bidirectional transformation](/source/bidirectional_transformation)
* [data conversion](/source/data_conversion)
* [data element](/source/data_element)
* [data mapping](/source/data_mapping)
* [data migration](/source/data_migration)
* [data transformation](/source/data_transformation)
* [metadata](/source/metadata)
* [model transformation](/source/model_transformation)
* [graph transformation](/source/graph_transformation)
* [refinement](/source/Program_refinement) (contrast)
{{col-break}}
Languages and typical transforms:
* [ATL](/source/ATLAS_Transformation_Language)
* [AWK](/source/AWK) (tabular data transforms)
* [Identity transform](/source/Identity_transform)
* [QVT](/source/QVT)
* [TXL](/source/TXL_(programming_language)) (general)
* [XQuery](/source/XQuery) (XML)
* [XSLT](/source/XSLT) (XML)
{{col-end}}

==References==
<references/>

{{Computer language}}
{{Programming paradigms navbox}}

Category:Transformation languages
Category:Programming language classification
Category:Metaprogramming

{{compu-lang-stub}}

---
Adapted from the Wikipedia article [Transformation language](https://en.wikipedia.org/wiki/Transformation_language) by Wikipedia contributors ([contributor history](https://en.wikipedia.org/wiki/Transformation_language?action=history)). Available under [Creative Commons Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/). Changes may have been made.
