Программисты MIT смогли успешно портировать код между несовместимыми проектами

Учёные MIT разработали утилиту CodeCarbonCopy (CCC), которая автоматически портирует код между проектами с учётом зависимостей между модулями, адаптируя его под новую кодовую базу.
CCC

CCC является работой лаборатории компьютерных наук и искусственного интеллекта MIT CSAIL. Учёные представили свою работу на ежегодной конференции ESEC/FSE в начале сентября 2017 года.

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

Согласно отчёту исследователей, они использовали CodeCarbonCopy для портирования кода между шестью популярными Open Source программами для обработки изображений. Команда провела 8 экспериментов, 7 из которых завершились успешно, поскольку программа-получатель безошибочно выполнила портируемый код.

В чём секрет успеха?

По словам разработчиков, CodeCarbonCopy удалось добиться подобного успеха благодаря двум его особенностям. Во-первых, это его способность обнаруживать и переносить переменные из одной кодовой базы в другую. Использование ССС подразумевает одновременный запуск программ «донора» и получателя кода. Во время работы программ ССС идентифицирует переменные, выполняющие одни и те же действия, и создаёт их список для человека, наблюдающего за экспериментом. Во-вторых, инструмент также отображает переменные, для которых не может найти совпадения, чтобы программисты могли связать их вручную или же отказаться от них в портированном коде.

ССС подойдёт для всех приложений?

Как оказалось, утилита работает только для определённого класса задач. В настоящее время инструмент полезен только для портирования кода между приложениями, работающими с изображениями, видео-, аудио- и PDF-файлами. В будущем планируется использовать CCC для обработки более громоздких и неорганизованных форматов.

Существуют аналоги?

Стоит отметить, что CCC не является первой попыткой MIT произвести революцию в портировании кода. В январе 2016 года институт совместно с Adobe объявили о проекте Helium Project, инициативе, помогающей разработчикам обновлять старые исходники под современное оборудование.

Источник: Bleeping Computer