Искусственный интеллект научили действовать как собака

Искусственный интеллект научили действовать как собака

❤ 256 , Категория: Новости IT,   ⚑ 04 Май 2018г


Как описывает OpenNET, на основе задаваемых разработчиком меток c упоминанием методов API и типов данных, которые следует использовать в коде, Bayou позволяет синтезировать готовые программные блоки с реализацией шаблонов использования Java API, соответствующих контексту уже имеющегося кода. Иными словами, Bayou позволяет использовать методы машинного обучения для воплощения парадигмы разработки copy&paste, при которой разработчик находит и использует готовые куски кода, применяемые в других проектах.

В целом Bayou преподносится как более умная система автодополнения кода, не просто дополняющая отдельные конструкции, а способная предлагать достаточно большие и сложные фрагменты кода, включающие обёртки для использования API, циклы и обработчики исключений. Со временем на базе Bayou планируется подготовить плагины к интегрированным средам разработки, которые позволят по мере набора кода разработчиком интерактивно предлагать подходящие по контексту куски кода.

Online-демонстрацию возможностей Bayou можно найти на данной странице. Например, при возникновении задачи написания кода для чтения из файла разработчик может добавить метку “{ /// call:readLine }”:

 import java.io.File; public class Test { void read(File file) { { /// call:readLine } } }

После обработки данной конструкции будет предложен готовый вариант кода:

 import java.io.BufferedReader; import java.io.File; import java.io.IOException; import java.io.FileNotFoundException; import java.io.FileReader; public class TestIO { void read(File file) { { FileReader fr1; BufferedReader br1; String s1; try { fr1 = new FileReader(file); br1 = new BufferedReader(fr1); s1 = br1.readLine(); } catch (FileNotFoundException _e) { } catch (IOException _e) { } return; } } } 

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

Читайте также:  Интересные материалы: 02.04

В текущем виде система требует задания достаточно точных меток, не поддерживает указание масок для типов и может использовать лишь ограниченный набор API (java.lang, java.io и java.util). В будущем разработчики намерены реализована возможность формирования запросов на естественном языке и добавить функциональность интерактивной оболочки, позволяющей выбирать разные варианты кода и уточнять свои пожелания. В более отдалённой перспективе планируется обеспечить генерацию более сложного кода, включающего группы методов или классов.

Оставить отзыв

Ваш адрес email не будет опубликован. Обязательные поля помечены *

*
*

top