Язык преобразования — это компьютерный язык, предназначенный для преобразования некоторого входного текста на определенном формальном языке в измененный выходной текст, отвечающий некоторой конкретной цели [ требуется пояснение ] .
Системы преобразования программ, такие как Stratego/XT, TXL , Tom , DMS и ASF+SDF, все имеют языки преобразования в качестве основного компонента. Языки преобразования для этих систем управляются декларативными описаниями структуры входного текста (обычно грамматики), что позволяет применять их к широкому спектру формальных языков и документов.
Макроязыки — это разновидность языков преобразования, позволяющих преобразовать метаязык в определенный язык программирования более высокого уровня, такой как Java , C++ , Fortran , или в язык ассемблера более низкого уровня .
В техническом пространстве инженерии на основе моделей существуют языки преобразования моделей (MTL), которые принимают в качестве входных данных модели, соответствующие заданной метамодели, и производят в качестве выходных данных модели, соответствующие другой метамодели. Примером такого языка является стандарт QVT OMG .
Существуют также низкоуровневые языки, такие как семейство Lx [1], реализованные методом самонастройки . Язык L0 можно рассматривать как ассемблер для языков трансформации. Существует также высокоуровневый графический язык, построенный на основе Lx, называемый MOLA. [2]
Существует ряд языков преобразования XML . К ним относятся Tritium , XSLT , XQuery , STX , FXT , XDuce , CDuce, HaXml , XMLambda и FleXML .