Лента новостей

10:47
Частная организация Совет Европы обязана вернуть взносы России
10:34
В украинском конфликте пришло время для реализма
10:12
США и Украина работают над соглашением о безопасности
10:04
Над зданием администрации поселка Очеретино водружён флаг РФ
10:02
Видео: переброска Французских войск в Одессу; уничтожение солдат НАТО в Днепропетровске
09:55
В Малайзии два военных вертолета разбились во время репетиции парада
09:33
Сами себе дамбы
09:26
МИД Украины запретил оказывать консульские услуги мужчинам за границей
09:15
СВО. Донбасс. Оперативная лента за 23.04.2024
08:33
В Малайзии на репетиции парада столкнулись два военных вертолета
04:53
Самоубийство Польши: Барская конфедерация и Первый раздел
01:54
«Плана Б» просто нет: почему Конгресс США одобрил новую военную помощь Украине?
00:14
«Великий энергопереход» как очередная уловка Запада
23:59
Специальная военная операция ВС РФ и события на Украине 22 апреля, вечер
21:58
Песков подтвердил желание Кремля договориться по Украине мирным путём
21:23
В Москве суд арестовал мигранта-убийцу с парковки и его подельников. Семье убитого угрожают близкие арестантов
20:14
ВСУ ведут обстрелы ДНР, Белгородской и Брянской области. Обзор ситуации в прифронтовых регионах России на вечер 22 апреля
20:13
Российские войска ликвидировали в Харькове источник зомбирования населения киевским режимом
20:12
The Wall Street Journal: Трамп в деловых беседах называл Украину частью России
20:11
Гуцул: 30−35 тысяч жителей Гагаузии получат карты в «Промсвязьбанке»
19:43
СМИ: Вашингтон согласился вывести войска США из Нигера
19:35
Азаров: киевский режим будет наращивать темпы могилизации украинцев
19:34
Новые мебель и оборудование поставили в 64 дворца культуры ДНР
19:33
США запутывают свои следы в деле о подрыве Северных потоков
19:32
Сводка Минобороны России о ходе проведения спецоперации на 22 апреля
19:26
Противоречивый и запутанный характер политики США в отношении КНР будет усиливаться
19:02
Битва за язык: Украина насаждает насильственное одноязычие
18:55
Французский издатель подал иск в суд на Столтенберга за ложь и провоцирование конфликта на Украине
18:54
Зеленский обвинил Запад в боязни России и призвал Папу Римского помочь материально
18:46
Может написать «Слава России»: на Украине ребенку из Харькова отказались выдавать школьные книги
18:18
Столтенберг призвал готовиться к многолетнему конфликту на Украине. Главное — найти деньги на его финансирование
18:17
The Economist: население Украины нищает, что выгодно России
18:12
Нанесён удар по объекту инфраструктуры в Харькове (ВИДЕО)
18:08
Политолог Светов: власти ФРГ не понимают опасностей перехода к «зеленой энергетике»
17:33
На Украине пропал координатор подрывов «Северных потоков»
16:58
Мировые военные расходы достигли рекордного уровня
16:36
Бандеровцы уличили команду Епифания в обворовывании украинской армии
16:25
Польский Krab уничтожен «Ланцетом» 238-й бригады (ВИДЕО)
16:23
Новоявленные морские границы с Норвегией в Баренцевом море требуют пересмотра?
16:20
Политолог Елисеева: США начинают игнорировать проблемы Украины
15:52
Немецкие округа отказываются принимать украинских беженцев
15:51
Столтенберг призвал готовиться к многолетнему конфликту на Украине. Главное - найти деньги на его финансирование
15:44
Грубые, дешевые и смертоносные: российские планирующие бомбы вынуждают Украину сдаться
15:16
Дороги, которые мы заслужили: в Киевской области микроавтобус с людьми провалился под землю
15:15
Не уберегли — Буданов о ликвидации российского летчика-предателя Кузьминова
Все новости

Архив публикаций



Мировое обозрение»Технологии»Создана программа, способная исправить ошибки в другой программе, не имея доступа к ее исходному коду

Создана программа, способная исправить ошибки в другой программе, не имея доступа к ее исходному коду


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

В настоящее время разработанная программа, имеющая название CodePhage, способна устранять ошибки, связанные с некорректными преобразованиями типов переменных, отсутствием проверок значений переменных и некоторых других типов наиболее распространенных ошибок. "Наша программа реализует функцию динамического обратного инжиниринга участков кода" - рассказывает Стелайос Сидироглоу-Дускос (Stelios Sidiroglou-Douskos), один из исследователей, - "При обнаружении ошибки программа осуществляет так называемый процесс "горизонтальной пересадки кода", который весьма подобен аналогичной операции, используемой в генетике. При этом программа не нуждается в доступе к исходному коду и может черпать участки требующегося ей уже кода из огромной "библиотеки" исполняемых файлов и модулей, доступных на просторах Интернета".

Представьте себе, что вы написали программу, в которую пользователь вводит два числа, а программа рассчитывает третье число, деля первое введенное пользователем значение на второе. И, как это бывает очень часто, перед выполнением деления вы забыли проверить, что второе введенное число не равно нолю. 

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

"Мы имеем в наличии "тонны" исполняемых модулей и исходного кода, хранящихся в общедоступных хранилищах. В этих миллионах проектов всегда можно найти подходящее решение для устранения ошибки того или иного типа, точнее, решение для наиболее правильного выполнения тех или иных действий" - рассказывает Сидироглоу-Дускос, - "И это не зависит от языка программирования, на котором была написана программа с ошибкой и программа-донор кода, ведь большинство языков программирования используют практически одинаковые конструкции, в которые превращаются строчки их исходного кода".

"Нашей долгосрочной перспективой является создание такой среды программирования, в которой программисту никогда не придется писать часть кода, если точно такую же уже до него написал кто-то другой" - рассказывает Мартин Ринард (Martin Rinard), профессор из Массачусетского технологического института, - "Будущая система сможет самостоятельно определять решаемую программистом задачу и подбирать наиболее подходящие участки уже написанного исходного кода, который будет наиболее оптимальным и свободным от ошибок".

Используя подобную технологию, разработчики программ при их написании могут преднамеренно опускать проверки значений данных и совершать "программистские ляпы" других типов. Затем код полученной программы пропускается через систему типа CodePhage, которая наполнит код всеми необходимыми проверками и устранит другие виды ошибок. В результате применения такого подхода будет сэкономлено достаточно большое количество человеко-часов работы высококвалифицированных специалистов, а уровень стабильности работы программ будет поднят практически до максимально достижимого.

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

Первоисточник


Опубликовано: legioner     Источник

Подпишись:





Напишите ваш комментарий к статье:

Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

Новости партнеров

Наверх