Применение глубокого машинного обучения к синтезу цепочки вызовов C#

Автор: Чебыкин А.Е., Кириленко Я.А.

Журнал: Труды Института системного программирования РАН @trudy-isp-ran

Статья в выпуске: 3 т.30, 2018 года.

Бесплатный доступ

Большая часть стандартных для программирования задач - например, соединение с базой данных, отображение картинки, чтение файла - давно реализована в различных библиотеках и доступна через соответствующие Application Programming Interfaces (APIs). Однако чтобы воспользоваться ими, разработчик должен сначала узнать, что они существуют, а затем - как правильно с ними работать. В настоящее время Интернет кажется наилучшим и самым популярным источником подобной информации. Недавно был предложен другой подход, основанный на глубоком машинном обучении и реализованный в виде инструмента под названием DeepAPI. По описанию желаемой функциональности на английском языке он генерирует цепочку вызовов Java функций. В данной статье мы показываем, как подход может быть перенесен на другой язык программирования (C# вместо Java), на котором доступно меньше открытого кода; мы описываем техники, позволившие достичь результата, близкого к оригинальному, а также техники, которые не улучшили производительность. Наконец, чтобы облегчить будущие исследования в области, мы публикуем наши набор данных, код и обученную модель.

Еще

Глубокое обучение, поиск кода, рекуррентная нейронная сеть, обучение с подкреплением

Короткий адрес: https://sciup.org/14916551

IDR: 14916551   |   DOI: 10.15514/ISPRAS-2018-30(3)-5

Статья научная