, 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) Аннотация. В данной статье рассматривается проблема автоматического синтеза функциональных программ. Описывается способ применения рассуждений на основе прецедентов в синтезе программ. Для применения этого подхода к задаче необходимо рассмотреть несколько подзадач: определение отношения «похожести» в пространстве спецификаций программ, поиск наиболее подходящей к заданной спецификации известной программы и адаптация выбранной программы к новой спецификации. Авторы рассматривают только подзадачу адаптации, оставив осталь-ные подзадачи для дальнейшей работы. Задачу адаптации можно рассматривать как коррекцию программы, то есть модификации выбранной в ходе по-иска программы таким образом, чтобы она удовлетворяла заданной спецификации. Существует метод коррекции функционально логических программ, имеющих вид системы переписывания термов с условиями. Таким образом, идея авторов состоит в трансляции функциональной программы в систему переписывания термов и в применении к ней известного метода коррекции. В данной статье рассматриваются процедура такой трансляции и адаптация мето-да коррекции для поставленной задачи. Ключевые слова: искусственный интеллект, синтез программ, коррекция программ, рассуждения на основе прецедентов, переписывание термов.
[1]
Hillel Kugler,et al.
Compositional Synthesis of Reactive Systems from Live Sequence Chart Specifications
,
2009,
TACAS.
[2]
Troy Magennis.
LINQ to Objects Using C# 4.0: Using and Extending LINQ to Objects and Parallel LINQ (PLINQ)
,
2010
.
[3]
María Alpuente,et al.
An integrated framework for the diagnosis and correction of rule-based programs
,
2010,
Theor. Comput. Sci..
[4]
W. Bibel,et al.
Automated deduction : a basis for applications
,
1998
.
[5]
Michael Hanus,et al.
The Integration of Functions into Logic Programming: From Theory to Practice
,
1994,
J. Log. Program..
[6]
Giorgio Levi,et al.
Assertion based Inductive Verification Methods for Logic Programs
,
2000,
Electron. Notes Theor. Comput. Sci..
[7]
Agnar Aamodt,et al.
Case-Based Reasoning: Foundational Issues, Methodological Variations, and System Approaches
,
1994,
AI Commun..
[8]
Nuno Seco,et al.
Using CBR for Automation of Software Design Patterns
,
2002,
ECCBR.