Слайд 1«Поиск шаблонов в программном коде»
Автор: студент 445 группы Евгений Куделевский
Руководитель: к.ф.-м.н.,
ст. разработчик компании JetBrains Максим Мосиенко
Слайд 2Основные понятия
Шаблон
Привязан к языку программирования
Шаблонные переменные
Значения – различные сущности языка
На значения
могут накладываться ограничения
Отношение соответствия
Множество значений шаблонных переменных
Отношение эквивалентности на множестве фрагментов кода
Различные ограничения
Слайд 3Применения поиска по шаблону
Извлечение знаний о коде (reverse engineering)
Инспекция кода
Нахождение дубликатов
Слайд 4Цель работы
Разработать метод поиска шаблонов программного кода
Ориентация на поиск по запросу
Значения
переменных – различные синтаксические единицы
Учет простейшей семантики языковых конструкций
Расширяемость реализации
Реализовать метод для языков JavaScript и ActionScript
Слайд 5Обзор существующих подходов
Синтаксический подход
Значения шаблонных переменных - любые синтаксические конструкции
Можно учитывать
семантику
Низкая эффективность
Лексический подход
Значения шаблонных переменных – лексемы и последовательности лексем
Сложно учитывать простейшую семантику
Высокая эффективность
Слайд 6Описание метода
Комбинация лексического и синтаксического подходов
Допускает синтаксические конструкции в качестве значений
переменных
Позволяет учитывать семантику языковых конструкций
Более эффективен, чем синтаксический подход
Не привязан к конкретному языку
Слайд 7Результаты
Разработан новый метод поиска шаблонов
Ориентирован на поиск по запросу
Допускает в качестве
значений шаблонных переменных синтаксические конструкции
Позволяет учитывать семантику
Имеет преимущества перед существующими методами
Допускает расширяемость реализации
На основе метода реализован механизм поиска по шаблону для языков JavaScript и ActionScript, работающий внутри среды IntelliJ IDEA