Интерактивная языконезависимая система поиска шаблонов и дубликатов в программном коде презентация

Содержание


Презентации» Шаблоны, фоны презентаций» Интерактивная языконезависимая система поиска шаблонов и дубликатов в программном коде
Интерактивная языконезависимая система поиска шаблонов и дубликатов в программном коде
 КуделевскийПоиск дубликатов
 Известная задача программной инженерии
 Эквивалентность фрагментов кода
 Особенности конкретногоПоиск по шаблону
 Применения
 Извлечение знаний
 Инспекция кода
 Поиск с помощьюStructural Search & Replace
 Шаблоны описываются на языке программирования, в которомЦель работы
 Разработка и внедрение программного инструмента поиска, удовлетворяющего следующим критериям:Механизм работы поиска
 Синтаксический подход
 Поиск дубликатов
 Хэширование синтаксического дерева
 ХэшированиеРезультаты: поиск дубликатов в IntelliJ IDEA
 Имелось средство поиска дубликатов дляРезультаты: Structural Search & Replace
 Имелась поддержка языков Java, HTML, XMLВозможности расширения
 Необходимая работа для поддержки нового языка
 Класс-наследник DuplicatesProfileBase
 Роли
Апробация
 Фреймворк MediaWiki
 47 Мб кода на языках PHP, JavaScript, HTMLРезультаты работы
 Разработан и внедрен языконезависимый и расширяемый программный инструмент поиска



Слайды и текст этой презентации
Слайд 1
Описание слайда:
Интерактивная языконезависимая система поиска шаблонов и дубликатов в программном коде Куделевский Евгений Валерьевич, 545 группа Научный руководитель: к.ф.-м.н. Мосиенко М.А.


Слайд 2
Описание слайда:
Поиск дубликатов Известная задача программной инженерии Эквивалентность фрагментов кода Особенности конкретного языка Порядок элементов Опциональный синтаксис def int n = 1 int n = 1 def n = 1 Скобки и блоки (a * 3) + 1 a * 3 + 1 if (b) { print s; } if (b) print s; Зависимость от языка программирования Подходы к решению Лексический Синтаксический

Слайд 3
Описание слайда:
Поиск по шаблону Применения Извлечение знаний Инспекция кода Поиск с помощью регулярных выражений Сложность составления Не всегда возможно описать шаблон

Слайд 4
Описание слайда:
Structural Search & Replace Шаблоны описываются на языке программирования, в котором предполагается производить поиск $output$.print($text$) Шаблонные переменные Значения – синтаксические единицы языка либо их последовательности if ($condition$) {$statements$} Дополнительные ограничения на значения переменных Замена на другой шаблон $var$ == 0 $var$ == null Связь с задачей поиска дубликатов

Слайд 5
Описание слайда:
Цель работы Разработка и внедрение программного инструмента поиска, удовлетворяющего следующим критериям: Языконезависимость реализации Расширяемость. Возможность учитывать особенности конкретного языка программирования

Слайд 6
Описание слайда:
Механизм работы поиска Синтаксический подход Поиск дубликатов Хэширование синтаксического дерева Хэширование блоков Функция стоимости Роли синтаксических конструкций Structural Search Компиляция шаблона Шаблонные переменные заменяются на идентификаторы Контекст разбора

Слайд 7
Описание слайда:
Результаты: поиск дубликатов в IntelliJ IDEA Имелось средство поиска дубликатов для Java Реализован инструмент поиска для многих других языков Полная поддержка функциональности, которая имелась ранее для Java Языконезависимость. Простой механизм поддержки нового языка Добавлена поддержка языков PHP, Groovy, JavaScript и HTML

Слайд 8
Описание слайда:
Результаты: Structural Search & Replace Имелась поддержка языков Java, HTML, XML и JavaScript Реализован инструмент поиска для многих других языков Полная поддержка функциональности, которая имелась ранее для Java, HTML, XML и JavaScript Языконезависимость. Простой механизм поддержки нового языка Добавлена поддержка языков PHP, Groovy и CSS

Слайд 9
Описание слайда:
Возможности расширения Необходимая работа для поддержки нового языка Класс-наследник DuplicatesProfileBase Роли Блоки GroovyDuplicatesProfile: 47 строк Класс-наследник StructuralSearchProfileBase PhpStructuralSearchProfile: 50 строк Описание эквивалентности По умолчанию используется стандартная эквивалентность

Слайд 10
Описание слайда:
Апробация Фреймворк MediaWiki 47 Мб кода на языках PHP, JavaScript, HTML и XML Поиск дубликатов Время работы: 95 сек. Найдено более 300 дубликатов Поиск шаблонов Время работы: 5 - 30 сек. в зависимости от сложности шаблона

Слайд 11
Описание слайда:
Результаты работы Разработан и внедрен языконезависимый и расширяемый программный инструмент поиска На основе существующего плагина Structural Search & Replace и движка поиска дубликатов для Java Возможно учитывать особенности конкретного языка Добавлена поддержка Groovy, PHP, JavaScript, CSS, HTML Проведено тестирование на реальном коде


Скачать презентацию на тему Интерактивная языконезависимая система поиска шаблонов и дубликатов в программном коде можно ниже:

Похожие презентации