Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
konstantin
7 лет назад

Новая технология позволяет программистам переносить фрагмент кода из одной программы в другую

Привет. Исследователи из Лаборатории компьютерной науки и искусственного интеллекта Массачусетского технологического института (CSAIL) разработали новую систему, которая позволяет программистам переносить код из одной программы в другую. Программист может выбрать фрагмент кода из одной программы и точку вставки во второй программе, и система автоматически внесет необходимые изменения, такие как имена переменных, чтобы интегрировать код в новый контекст.

Важно, что система может осуществлять перевод между «представлениями данных», используемыми программами-донорами и получателями. Например, программа обработки изображений должна иметь возможность обрабатывать файлы в различных форматах, таких как jpeg, tiff или png. Но внутренне она будет представлять все эти изображения, используя единую стандартизованную схему. Однако, разные программы могут использовать разные внутренние алгоритмы. Новая система автоматически накладывает алгоритм программы донора на алгоритм программы получателя, чтобы импортировать код без проблем.

Новую система, получила название CodeCarbonCopy.

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

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

С новой разработкой первым шагом в пересадке кода из одной программы в другую является передача обоих кодов в один входной файл. Затем система сравнивает, как обе программы его обрабатывают.

Если, например, донорская программа выполняет серию операций над определенной частью данных и загружает результат в переменную с именем «mem_clip-> width», а программа-получатель выполняет те же операции с одним и тем же фрагментом данных и загружает результат в переменную с именем «picture.width», система сделает вывод, что переменные играют одни и те же роли в своих родительских программах.

Чтобы отображать перенос данных из одной программы в другую, система просматривает точные значения, которые обе программы хранят в памяти. Например, каждый пиксель в цифровом изображении определяется тремя значениями цвета: красный, зеленый и синий. Некоторые программы, однако, хранят эти тройки значений в порядке - синий, зеленый, красный.

Если CodeCarbonCopy находит системную связь между значениями, хранящимися одной программой, и значениями, хранящимися другой, он создает набор операций для преобразования между их представлениями данных.

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

Подробней, фото1, фото2

5
62.287 GOLOS
Комментарии (4)
Сортировать по:
Сначала старые