«Поиск шаблонов в программном коде» Автор: студент 445 группы Евгений Куделевский Руководитель: к.ф.-м.н., ст. разработчик компании JetBrains Максим Мосиенко.

Презентация:



Advertisements
Похожие презентации
Интерактивная языконезависимая система поиска шаблонов и дубликатов в программном коде Куделевский Евгений Валерьевич, 545 группа Научный руководитель:
Advertisements

Предметно-ориентированное моделирование приложений для платформы Android Никонова Ольга СПбГУ Научный руководитель Брыксин Т.А.
2012 год Кафедра прикладной математики Руководитель работы: д.т.н., проф. Фальк В.Н. Национальный исследовательский университет «МЭИ» Выпускная работа.
МЕТОДЫ ОРГАНИЗАЦИИ ИНФОРМАЦИОННЫХ ОБЪЕКТОВ С ПОДОБНЫМИ СТРУКТУРАМИ КАК ЕДИНЫЙ ИФОРМАЦИОННЫЙ РЕСУРС ХРАНИЛИЩА МНОГОМЕРНЫХ ДАННЫХ. Волков Антон Андреевич.
Многометодные процедуры оптимального управления Архитектура и реализация программного комплекса Исследовательский Центр процессов управления Работа выполнена.
М.Ю. Харламов, ВНУ им. В.Даля, Семантический анализатор Семантический анализатор выполняет следующие основные действия: проверку соблюдения во входной.
ЛАБОРАТОРНАЯ РАБОТА 1 ПРОЕКТИРОВАНИЕ И РЕАЛИЗАЦИЯ ТАБЛИЦ, ИСПОЛЬЗУЕМЫХ В ТРАНСЛЯТОРЕ Рейн Т. С.
Моделирование поведения взаимодействующих агентов в среде с ограничениями Юданов А.А., студент 525 гр. Научный руководитель: к.ф.-м.н. Бордаченкова Е.А.
Объектная модель многофункциональных словарей Докладчик: Носков А. А. Группа: 525 Научный руководитель: Большакова Е. И.
Повторить определение алгоритма, его свойства и виды. Вспомнить понятие модели и дать определение алгоритмической модели Повторить определение алгоритма,
Применение технологии виртуальных миров при построении интерактивных обучающих систем Самарский государственный аэрокосмический университет имени академика.
Выпускная квалификационная работа студента 545 группы Алеева Алексея Валерьевича Научный руководитель: аспирант, Е. А. Елизаров Рецензент: ведущий инженер,
Языки и методы программирования Преподаватель – доцент каф. ИТиМПИ Кузнецова Е.М. Лекция 2.
Классификация. Язык программирования – это фиксированная система обозначений и правил, предназначенная для описания алгоритмов и структур данных.
Языки программирования Выполнили: Гашек Г.И. и Горшкова И.А.
Проверка эквивалентности срединной и линейной осей многоугольника Дипломная работа студента 545 группы Подколзина Максима Валериевича Санкт-Петербургский.
1 Средства автоматической интеграции разнородных онтологий Панасенко Алексей, 525 группа Научный руководитель Большакова Е.И.
ИССЛЕДОВАНИЕ МОДЕЛЕЙ ИНФОРМАЦИОННОГО ПОИСКА РЕСУРСОВ В ЭЛЕКТРОННОЙ БИБЛИОТЕКЕ РЕСПУБЛИКИ КАРЕЛИЯ Выполнил : студент 3 курса, гр , Банкет Вячеслав.
Подход к автоматическому извлечению информации о назначениях и отставках лиц ( на материале новостных сообщений ) © Н. А. Власова Институт Программных.
ПростыеСложные
Транксрипт:

«Поиск шаблонов в программном коде» Автор: студент 445 группы Евгений Куделевский Руководитель: к.ф.-м.н., ст. разработчик компании JetBrains Максим Мосиенко

Основные понятия Шаблон Привязан к языку программирования Шаблонные переменные Значения – различные сущности языка На значения могут накладываться ограничения Отношение соответствия Множество значений шаблонных переменных Отношение эквивалентности на множестве фрагментов кода Различные ограничения

Применения поиска по шаблону Извлечение знаний о коде (reverse engineering) Инспекция кода Нахождение дубликатов

Цель работы Разработать метод поиска шаблонов программного кода Ориентация на поиск по запросу Значения переменных – различные синтаксические единицы Учет простейшей семантики языковых конструкций Расширяемость реализации Реализовать метод для языков JavaScript и ActionScript

Обзор существующих подходов Синтаксический подход Значения шаблонных переменных - любые синтаксические конструкции Можно учитывать семантику Низкая эффективность Лексический подход Значения шаблонных переменных – лексемы и последовательности лексем Сложно учитывать простейшую семантику Высокая эффективность

Описание метода Комбинация лексического и синтаксического подходов Допускает синтаксические конструкции в качестве значений переменных Позволяет учитывать семантику языковых конструкций Более эффективен, чем синтаксический подход Не привязан к конкретному языку

Результаты Разработан новый метод поиска шаблонов Ориентирован на поиск по запросу Допускает в качестве значений шаблонных переменных синтаксические конструкции Позволяет учитывать семантику Имеет преимущества перед существующими методами Допускает расширяемость реализации На основе метода реализован механизм поиска по шаблону для языков JavaScript и ActionScript, работающий внутри среды IntelliJ IDEA