Code anomaly detection

Руководитель

Никита Поваров

Продукт

IntelliJ IDEA

Проект

Для разработчиков языка часто оказывается полезным найти такие места в коде, которые с точки зрения формального синтаксиса выглядят корректно, но при этом по ним генерируется очень сложное AST, отрабатывающее на несколько порядков медленнее, чем должно бы. Сейчас нахождение таких примеров кода происходит через стандартные каналы фидбека — разработчик, использующий язык, встаёт на грабли, ему становится больно, он жалуется, и разработчик языка вносит изменения в генерацию AST. Этот процесс получения фидбека стоит изменить: не всегда разработчик находит грабли, ещё реже — на них жалуется. С точки зрения ML/DM вышеописанное — задача поиска аномалий на AST. Её-то мы и хотим решить.

Мы хотим научиться находить такие странно написанные места автоматически. Указание потенциально проблемных мест существенно облегчит жизнь нашим разработчикам языка Kotlin.

Ожидаемый результат - система (например, плагин для IDEA), которая по запросу анализирует предоставленный код и указывает обнаруженные ею места с потенциальными проблемами. Это семестровый проект, который может стать дипломом.

Контекст

Требования
  • Python / Java / Kotlin
  • Общее представление о методах поиска выбросов (достаточно статей, предложенных в разделе ссылок)
  • Матстатистика на уровне постановки и проверки гипотез
  • Базовые представления о работе компиляторов
Презентация