У MIT створили самонавчальну систему виправлення помилок в коді


Дізнайтесь більше про нові кар'єрні можливості в EchoUA. Цікаві проекти, ринкова оплата, гарний колектив. Надсилайте резюме та приєднуйтеся до нас.

Зазвичай помилки в додатках є невеликими помилками в коді, патчі для яких займають пару рядків. Ґрунтуючись на цій простоті виправлення, дослідницька група професора MIT Мартіна Рінарда розробила автоматичний генератор таких виправлень. Система є набором шаблонів, які, як правило, вимагають виправлення у вигляді “латочок”. Ці шаблони помилок з прикладами реальних виправлень для них використовуються як навчальна вибірка для системи.

Шаблони краще адаптовані до реально типів патчів, тому генеруються точніші пропозиції виправлення помилок. У тестах нова система, що набула назви Genesis, виправила майже вдвічі більше помилок, ніж найефективніша система шаблонів з ручним кодуванням.

Співробітник групи Рінарда Фан Лонг зазначає:

Ми знайшли компроміс. З одного боку, ми хочемо, щоб система генерувала достатню кількість корисних пропозицій виправлення коду, а з іншого – загальна кількість таких пропозицій не має бути великою, щоб не загубитися в них.

Оцінка якості алгоритму ґрунтується на кількості виправлених помилок і даремних патчів. Наприклад, генерація 10 пропозицій, 4 з яких є реальними виправленнями помилок коду, має вищу оцінку, ніж генерація тисячі патчів, всього 5 з яких придатні для використання.

Genesis працює з програмами, написаними мовою Java. Тести системи проводилися з використанням 41 Open Source проекту. Genesis коректно виправила 21 тестовий приклад із 49 запропонованих. Дослідники вірять, що більша кількість навчальних вибірок і більший об’єм обчислювальної потужності зможуть продемонструвати кращу якість фінальних результатів.

Докладніше про метод навчання системи вибору правильного патча для вхідних даних можна дізнатися у блозі розробників.

Джерело: MIT News

Київ, Харків, Одеса, Дніпро, Запоріжжя, Кривий Ріг, Вінниця, Херсон, Черкаси, Житомир, Хмельницький, Чернівці, Рівне, Івано-Франківськ, Кременчук, Тернопіль, Луцьк, Ужгород, Кам'янець-Подільський, Стрий - за статистикою саме з цих міст програмісти найбільше переїжджають працювати до Львова. А Ви розглядаєте relocate?


Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *