Синтезирующее программирование

Синтезирующее программирование предполагает синтез программы по ее спецификации. В отличие от программы, которая написана на алгоритмическом языке и предназначена для исполнения на вычислительной машине после трансляции в исполняемый код, документ на языке специфика является лишь базисом для последующей реализации. Для получения реализации необходимо решить перечисленные ниже основные задачи (http://case.ispras.ru/PublicScripts/cgi-bin/lib.cgi/code_generation/autoreferat.html)/

* Доопределить детали, которые нельзя выразить при помощи языка спецификации, но необходимые для получения исполняемого кода.

* Выбрать язык реализации и аппаратно-программную платформу для реализации.

* Зафиксировать отображение понятий языка спецификаций на язык реализации и аппаратно-программную платформу.

* Осуществить трансформацию представления (из спецификации в исполняемую программу на языке реализации).

* Отладить и протестировать исполняемую программу.

Автоматическая генерация программ по спецификациям возможна для многих языков спецификаций, среди которых особо выделим SDL, ASN.1, LOTOS, Estelle, UML..