AN APPROACH TO CASE-BASED SYNTHESIS OF FUNCTIONAL PROGRAMS

, Postgraduate Student (Lomonosov Moscow State University, Leninskie Gory, Moscow, 119991, Russian Federation , nnf-cmc@cs.msu.ru) Received 19.05.2014 Abstract. This article deals with an automatic functional programs synthesis problem. We consider the way to apply case-based reasoning approach to program synthesis. In order to use such framework for our problem we have to consider several subproblems: definition of a "similarity" relation over program specifications space, search of the most suitable known program for a given specification and adaptation of a chosen program to new specification. We will consider adaptation method only in this article and leave other subproblems for further work. We can consider the problem of adaptation as a problem of program correction: we have to modify given (chosen in search procedure) program, so that it will satisfy a given specification. There is a method for functional logic program correction, which have a form of conditional term-rewriting systems. So, our idea is to translate a functional program to term-rewriting system and then apply the correction method to it. In this article we will consider procedures of such translation and adaptation of the correction method for our task. Keywords: artificial intelligence, program synthesis, program correction, case based reasoning, term rewriting system. УДК 004.4 Дата подачи статьи: 19.05.2014 ПОДХОД К СИНТЕЗУ ФУНКЦИОНАЛЬНЫХ ПРОГРАММ, ОСНОВАННОМУ НА ПРЕЦЕДЕНТАХ (Работа выполнена при поддержке РФФИ, грант № 140100214а) Фастовец Н.Н. , аспирант (Московский государственный университет им. М.В. Ломоносова, Ленинские горы, г. Москва, 119991, Россия, nnfcmc@cs.msu.ru) Аннотация. В данной статье рассматривается проблема автоматического синтеза функциональных программ. Описывается способ применения рассуждений на основе прецедентов в синтезе программ. Для применения этого подхода к задаче необходимо рассмотреть несколько подзадач: определение отношения «похожести» в пространстве спецификаций программ, поиск наиболее подходящей к заданной спецификации известной программы и адаптация выбранной программы к новой спецификации. Авторы рассматривают только подзадачу адаптации, оставив осталь-ные подзадачи для дальнейшей работы. Задачу адаптации можно рассматривать как коррекцию программы, то есть модификации выбранной в ходе по-иска программы таким образом, чтобы она удовлетворяла заданной спецификации. Существует метод коррекции функционально логических программ, имеющих вид системы переписывания термов с условиями. Таким образом, идея авторов состоит в трансляции функциональной программы в систему переписывания термов и в применении к ней известного метода коррекции. В данной статье рассматриваются процедура такой трансляции и адаптация мето-да коррекции для поставленной задачи. Ключевые слова: искусственный интеллект, синтез программ, коррекция программ, рассуждения на основе прецедентов, переписывание термов.