Таблица | Карточка | RUSMARC | |
Разрешенные действия: –
Действие 'Прочитать' будет доступно, если вы выполните вход в систему или будете работать с сайтом на компьютере в другой сети
Действие 'Загрузить' будет доступно, если вы выполните вход в систему или будете работать с сайтом на компьютере в другой сети
Группа: Анонимные пользователи Сеть: Интернет |
Аннотация
Одним из подходов, облегчающих отладку программ за счёт сокращения количества анализируемого программного кода, является слайсинг. На сегодняшний день существует несколько методов слайсинга. К их недостаткам можно отнести зависимость времени выполнения слайсинга от размера истории исполнения программы. В работе к реализации предлагается алгоритм, не имеющий этой проблемы — метод повторного исполнения по запросу. Разработана программа, реализующая алгоритм для языка программирования Java. Проведено сравнение с другими методами слайсинга. Полученные результаты показывают практическую применимость алгоритма для слайсинга программ.
There are many ways to reduce the amount of code to be analyzed when debugging. One of them is program slicing. Most of the approaches suffer from slicing time dependence on program trace size. In this thesis we implement an algorithm that overcomes the problem — dynamic slicing by on-demand re-execution. Based on this algorithm, we developed a program slicing application for Java programming language, then compared it with other slicing methods. The evaluation results show usefulness and applicability of the approach.
Права на использование объекта хранения
Место доступа | Группа пользователей | Действие | ||||
---|---|---|---|---|---|---|
Локальная сеть ИБК СПбПУ | Все |
![]() ![]() ![]() |
||||
Интернет | Авторизованные пользователи СПбПУ |
![]() ![]() ![]() |
||||
![]() |
Интернет | Анонимные пользователи |
Оглавление
- 1. Алгоритмы динамического слайсинга
- 1.1. Обход графа зависимостей программы по выполненным узлам
- 1.2. Обход графа зависимостей программы по выполненным зависимостям
- 1.3. Обход графа динамических зависимостей
- 1.4. Обход сокращённого графа динамических зависимостей
- 1.5. Метод повторного исполнения по запросу
- 1.6. Резюме
- 2. Постановка задачи
- 2.1. Основные функции разрабатываемого приложения
- 2.2. Требования к статическому анализу
- 2.3. Требования к инструментированию
- 2.4. Резюме
- 3. Подход к реализации алгоритма динамического слайсинга методом повторного выполнения по запросу
- 3.1. Выбор языка программирования, для которого разрабатывается слайсер
- 3.1.1. Python
- 3.1.2. C/C++
- 3.1.3. Java
- 3.1.4. C#
- 3.1.5. Резюме
- 3.2. Выбор языка программирования, на котором разрабатывается слайсер
- 3.2.1. Java
- 3.2.2. Groovy
- 3.2.3. Kotlin
- 3.2.4. Scala
- 3.2.5. Резюме
- 3.3. Выбор инструмента для статического анализа программ
- 3.3.1. Soot
- 3.3.2. Spoon
- 3.3.3. WALA
- 3.3.4. Резюме
- 3.4. Выбор подхода для инструментирования программ
- 3.4.1. Резюме
- 3.5. Резюме
- 3.1. Выбор языка программирования, для которого разрабатывается слайсер
- 4. Разработка приложения
- 4.1. Архитектура приложения
- 4.2. Программные сущности
- 4.3. Нахождение зависимостей
- 4.4. Слайсинг
- 4.5. Запуск с инструментированием
- 4.6. Резюме
- 5. Тестирование
- 5.1. Выбор инструмента для сравнения
- 5.2. Тестовые программы
- 5.3. Задача тестирования
- 5.4. Ход тестирования
- 5.5. Анализ результатов
- 5.6. Резюме
- 1. Программы, на которых проводилось сравнение с Slicer4J
- 2. Сравнение временных показателей Slicer4J и ODRES
Статистика использования
|
Количество обращений: 4
За последние 30 дней: 0 Подробная статистика |