Искусственный интеллект (ИИ) - это обширная область, состоящая из множества дисциплин, таких как робототехника или машинное обучение. Целью ИИ является создание машин, способных выполнять задачи и когнитивные функции, которые в противном случае находятся в пределах возможностей человеческого интеллекта. Чтобы достичь этого, машины должны иметь возможность изучать эти возможности автоматически, вместо того, чтобы каждая из них была явно запрограммирована от начала до конца.

Еще одна задача AI - писать программы. Аналогичная технология была разработана Microsoft совместно с Кембриджским университетом. Они разработали программу, которая может создавать другие программы, заимствуя код. Изобретение называется DeepCoder. Это программное обеспечение, способное учитывать требования разработчиков и находить фрагменты кода в большой базе данных. Здесь можно увидеть работы ученых.

«Потенциал автоматизации написания программного кода просто невероятен. Это означает сокращение огромных усилий, необходимых для разработки кода. Такая система будет намного продуктивнее любого мужчины. Кроме того, вы можете создать систему, которую раньше было невозможно построить »,

- говорит Армандо Солар-Лезама из Массачусетского технологического института.

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

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

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

В январе 2015 года исследователи из Массачусетского технологического института представили программу Prophet, которая может находить ошибки в исходном коде других программ и исправлять их. Алгоритм использует полученные из Интернета и автоматически измененные патчи. По словам разработчиков, в отличие от многих других программ для исправления вашего кода, Prophet может работать с исходным кодом программного обеспечения, состоящим из нескольких сотен, тысяч и десятков тысяч строк. Программа может выбрать правильный код из множества вариантов и использовать опыт предыдущих исправлений.

Итак, вернемся к DeepCoder. Программистам теперь не о чем беспокоиться: сейчас DeepCoder может решать задачи программирования, работая всего с пятью строками кода. Но методы машинного обучения очень быстро улучшаются. Научить DeepCoder более сложным задачам - только вопрос времени.