Category:

Forth. Форт, метапрограммирование. Трансформация программ.

===
https://en.wikipedia.org/wiki/Compiler-compiler
В информатике компилятор -компилятор или генератор компиляторов — это инструмент программирования, который, создает синтаксический анализатор, интерпретатор или компилятор из некоторой формы формального описания языка программирования и машины.


Программирование на Forth — это добавление новых слов в язык. Изменение языка таким образом является метапрограммированием.
Forth — это метакомпилятор, потому что Forth — это язык, специально разработанный для метапрограммирования. Программирование на Форте расширяет возможности Форта, добавляя слова в словарь Форта, создавая новый диалект Форта. Forth — специализированный метакомпилятор диалектов языка Forth.
===

Трансформация программы
https://en.wikipedia.org/wiki/Program_transformation

Преобразование программы — это любая операция, которая берет компьютерную программу и генерирует другую программу. Во многих случаях требуется, чтобы преобразованная программа была семантически эквивалентна оригиналу относительно определенной формальной семантики, и в меньшем количестве случаев преобразования приводят к программам, которые семантически отличаются от оригинала предсказуемым образом.

Обобщением семантической эквивалентности является понятие уточнения программы
===

https://en.wikipedia.org/wiki/Transformation_language
https://en.wikipedia.org/wiki/List_of_program_transformation_systems


В инженерно-техническом пространстве, управляемом моделями , существуют языки преобразования моделей (MTL), которые принимают в качестве входных данных модели, соответствующие заданной метамодели, и создают в качестве выходных моделей модели, соответствующие другой метамодели. Примером такого языка является стандарт QVT OMG .
https://en.wikipedia.org/wiki/Transformation_language

===
https://en.wikipedia.org/wiki/Model_transformation_language
Понятие трансформации модели занимает центральное место в разработке на основе моделей . Преобразование модели, которое по сути является программой, работающей с моделями, может быть написано на языке программирования общего назначения, таком как Java . Однако языки преобразования моделей специального назначения могут иметь такие преимущества, как синтаксис, упрощающий обращение к элементам модели. Для написания преобразований двунаправленной модели, которые поддерживают согласованность между двумя или более моделями, особенно важен специальный язык преобразования двунаправленной модели, поскольку он может помочь избежать дублирования, которое может возникнуть при написании каждого направления преобразования по отдельности.

В настоящее время большинство языков преобразования моделей разрабатываются в академических кругах. OMG стандартизировала семейство языков преобразования моделей под названием QVT , но эта область все еще незрела. [1]

===

https://en.wikipedia.org/wiki/Model_transformation_language
https://en.wikipedia.org/wiki/Graph_rewriting
https://en.wikipedia.org/wiki/XML_transformation_language

https://en.wikipedia.org/wiki/Meta-circular_evaluator