Создан алгоритм Code Phage, сам исправляющий ошибки в исходном коде ПО

Программисты Массачусетского технологического университета разработали алгоритм Code Phage – он может автоматически исправлять ошибки в любом исходном коде любых программ.

Отличительная особенность алгоритма – его способность к поиску подходящих заплаток в исполняемом коде программ-доноров. Алгоритм может использовать «донорские» фрагменты, написанные на любом языке программирования.

После запуска алгоритм получает исходный код «целевой» программы и два набора данных – один из них успешно исполняется, а другой вызывает ошибку. Алгоритм использует эти наборы, чтобы среди программ-доноров найти такую, в которой оба они обрабатываются без ошибки.

Code

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

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

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

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

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

Читайте также:

Робот RoCycle з MIT може сортувати папір і пластик на дотик. Відео

Штучний інтелект у вашому смартфоні зможе визначити, чи впали ви в депресію

Шнобелівська премія 2018 — американські гірки в медицині та кукли вуду в економіці

Піца з креветками та солодким джемом — креатив від штучного інтелекту