![]() |
ИСТИНА |
Войти в систему Регистрация |
ИПМех РАН |
||
Диссертация посвящена созданию эффективных методов и алгоритмов автоматического синтеза программ по их формальным спецификациям. Формальная спецификация представляет собой описание задачи, которую требуется решить. В работе рассматривается дедуктивный синтез программ. При таком подходе спецификация, задающая соотношение между входными и выходными данными программы, рассматривается как теорема существования объекта, удовлетворяющего заданным соотношениям. Для этой теоремы строится конструктивное доказательство, то есть такое, которое, утверждая о существовании объекта, предъявляет способ его вычисления. Из доказательства и извлекается текст программы. Преимущество дедуктивного подхода состоит в том, что одновременно с построением программы доказывается её соответствие заданной спецификации, поэтому не требуется в дальнейшем проводить верификацию синтезированной программы. В диссертации рассматривается синтез функциональных программ, то есть таких, при построении которых допускаются три управляющие конструкции: применение функции, разветвление и рекурсия. Одним из методов, позволяющих проводить дедуктивный синтез функциональных программ, является метод дедуктивных таблиц. В этом методе основным шагам доказательства теоремы-спецификации соответствует синтез одной из трех основных конструкций функциональной программы, при этом структура программы не ограничивается заранее заданными шаблонами, а формируется в процессе синтеза. Достоинства метода были продемонстрированы на примере синтеза ряда интересных программ в автоматизированном режиме. Однако при автоматическом построении программы применение метода дедуктивных таблиц в “чистом” виде ведёт к большому перебору вариантов при поиске доказательства, что делает его практическое использование невозможным. В работе предложены эвристиками, позволяющие сократить перебор и сделать его направленным, чтобы автоматический синтез программ можно было осуществлять за приемлемое время.