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