Специалисты из области стилометрии (наука занимающаяся исследованием стилистики, включающая в себя проведение статистического анализа) хорошо знают, что письмо и процесс написания чего-то – это уникальный процесс. Словарный запас, синтаксис и грамматика создают индивидуальный почерк каждого автора, позволяя определить его в будущем. Конечно, на сегодняшний день существуют даже автоматизированные системы, способные идентифицировать человека, написавшего сообщение или публикацию в интернете. Недавнее исследование показало, что данную науку можно применить и к искусственным языкам (речь идет о языках программирования). Как оказалось, программисты точно так же имеют свой стиль, который можно распознать зная его особенности.
Кстати о текстах: если вам необходим качественный перевод текста, статьи, документа, сервис idiom.com.ua готов вам в этом помочь! Сертифицированные переводчики подготовят ваш заказ в кратчайшие сроки!
Исследователи Рэйчел Гринстадт из Дрексельского университета и Айлин Калискан из Университета Джорджа Вашингтона пришли к выводу, что код, как и другие формы стилистического выражения, не является анонимным и вполне поддается анализу. Результаты своей работы они представили на конференции DefCon. В исследовании учёные использовали машинное обучение для выявления авторов образцов кода.
Конечно, как и для любого другого алгоритма машинного обучения, необходимо использовать как можно больше образцов кода, чтобы научить алгоритм сопоставлять их с авторами. В таком случае, достаточно небольшого фрагмента кода из репозитория GitHub, чтобы отличить одного кодера от другого с высокой точностью, утверждают авторы исследования.
Гринстадт и Калискан вместе с другими учёными показали, как можно деанонимизировать программиста, используя его скомпилированный двоичный код. Им также удалось декомпиллировать его обратно на C++, сохранив уникальный стиль. Это работает примерно так, как если бы вы перевели документ в Google Translate на другой язык – текст выглядит совершенно иначе, но он сохранил орфографию и синтаксис.
Новая работа исследователей может быть использована для определения плагиата, особенно для новичков, которые часто копируют куски кода, или для выявления разработчиков вредоносного ПО.






