Регистрация Войти
Вход на сайт

Американцы создали программу, исправляющую самостоятельно ошибки

31 января 2016 08:00
Американцы создали программу, исправляющую самостоятельно ошибкиСпециалисты из Массачусетского технологического университета разработали программу Prophet, способную в полностью автоматическом режиме искать ошибки в исходном коде других программ и исправлять их.

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

Читайте также: DeLorean возобновит производство машин из фильма «Назад в будущее»

В основу алгоритма разработчики положили гипотезу о том, что у всех программ, независимо от языка, на котором они написаны, и платформы, для которой они предназначены, корректные участки кода имеют определенные универсальные признаки корректности, присутствующие на семантическом уровне. Prophet может составлять карту таких признаков корректности для изученных патчей, а затем переносить ее на анализируемый код программного обеспечения. При работе с исходным кодом программы Prophet использует статический и динамический анализ кода, что позволяет не только выявить некорректные и потенциально нерабочие участки, но и локализовать ошибки с высокой точностью. Для выбора и изменения обнаруженных патчей и последующего их применения к программному коду также используется динамический анализ. Кроме того, как и Code Phage алгоритм Prophet способен «отмечать» потенциально опасные участки — при их исполнении с ошибкой исправленная программа просто закроется.

Тестирование Prophet раззработчики проводили на 69 известных ошибках в восьми программах с открытым исходным кодом. Результаты работы алгоритма сравнивали с другими такими программами — SPR, Kali, GenProg и AE. На анализ исходного кода и применение патчей всем испытуемым алгоритмам отводились 12 часов. За этот период Prophet сумел найти 19 патчей для 69 дефектов, 18 из которых оказались корректными. Причем 15 из 19 исправлений были подобраны алгоритмом с первой попытки. В свою очередь SPR за 12 часов смогла найти только 16 правильных патчей из 19, причем только 11 корректных исправлений были подобраны с первой попытки. Kali, GenProg и AE сумели подобрать два, один и два корректных исправления соответственно.

Рейтинг статьи:
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо зайти на сайт под своим именем.
Оставить комментарий
Ваше имя: *
Ваш e-mail: *
Текст комментария:
Полужирный Наклонный текст Подчёркнутый текст Зачёркнутый текст | Выравнивание по левому краю По центру Выравнивание по правому краю | Вставка смайликов Выбор цвета | Скрытый текст Вставка цитаты Преобразовать выбранный текст из транслитерации в кириллицу Вставка спойлера
Код: Включите эту картинку для отображения кода безопасности
обновить, если не виден код
Введите код: