Детальная информация

Название: Разработка метода автоматического поиска ошибок компиляторов языков Kotlin и Java, связанных с производительностью: выпускная квалификационная работа бакалавра: направление 09.03.01 «Информатика и вычислительная техника» ; образовательная программа 09.03.01_02 «Технологии разработки программного обеспечения»
Авторы: Коротких Виктор Дмитриевич
Научный руководитель: Степанов Даниил Сергеевич
Организация: Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и технологий
Выходные сведения: Санкт-Петербург, 2023
Коллекция: Выпускные квалификационные работы; Общая коллекция
Тематика: качество программного обеспечения; автоматическое тестирование компиляторов; определение ошибок связанных с производительностью; фаззинг; компилятор Kotlin; компилятор Java; software quality; automatic compiler testing; performance related bugs detection; fuzzing; Kotlin compiler; Java compiler
Тип документа: Выпускная квалификационная работа бакалавра
Тип файла: PDF
Язык: Русский
Уровень высшего образования: Бакалавриат
Код специальности ФГОС: 09.03.01
Группа специальностей ФГОС: 090000 - Информатика и вычислительная техника
DOI: 10.18720/SPBPU/3/2023/vr/vr23-3405
Права доступа: Доступ по паролю из сети Интернет (чтение, печать, копирование)
Ключ записи: ru\spstu\vkr\22788

Разрешенные действия:

Действие 'Прочитать' будет доступно, если вы выполните вход в систему или будете работать с сайтом на компьютере в другой сети Действие 'Загрузить' будет доступно, если вы выполните вход в систему или будете работать с сайтом на компьютере в другой сети

Группа: Анонимные пользователи

Сеть: Интернет

Аннотация

Данная работа посвящена решению проблемы автоматизации выявления ошибок компиляторов языков Kotlin и Java, связанных с производительностью. В качестве реализуемого подхода использован метод фаззинга, а для анализа результатов использован подход, основанный на запуске и оценке времени работы скомпилированных программ. В работе выполнен анализ предметной области и рассмотрены общие методы определения ошибок компиляторов, связанных с производительностью. Подробно описан метод генерации тестовых программ. Рассмотрена реализация прототипа модуля автоматического поиска ошибок компиляторов языков Kotlin и Java, связанных с производительностью. Проведено исследование качества работы прототипа, по результатам которого было принято решение о его практической применимости. В ходе тестирования в компиляторе языка Kotlin была найдена ошибка, связанная с производительностью.

This work is dedicated to solving the problem of automating the detection of compiler errors in Kotlin and Java languages related to performance. The implemented approach is based on fuzzing, and the analysis of the results uses a method that involves running and evaluating the compiled programs performance. The paper analyzes the subject area and considers general methods for determining compiler errors related to performance. The method for generating test programs is described in detail. The implementation of the prototype of the module for automatically detecting performance-related errors in the Kotlin and Java compilers is considered. A study was conducted on the quality of the prototype, the results of which made a decision on its practical applicability. During testing, a performance-related bug was found in the Kotlin language compiler.

Права на использование объекта хранения

Место доступа Группа пользователей Действие
Локальная сеть ИБК СПбПУ Все Прочитать Печать Загрузить
Интернет Авторизованные пользователи СПбПУ Прочитать Печать Загрузить
-> Интернет Анонимные пользователи

Оглавление

  • 1. Методы определения ошибок компиляторов, связанных с производительностью
    • 1.1. Статический анализ кода
      • 1.1.1. Резюме
    • 1.2. Фаззинг
      • 1.2.1. Резюме
    • 1.3. Вывод
  • 2. Постановка задачи
    • 2.1. Основные функции разрабатываемого модуля
    • 2.2. Требования к модулю генерации программ для ЯП Java и Kotlin
    • 2.3. Резюме
  • 3. Подход к реализации метода фаззинга
    • 3.1. Рассмотрение подхода к генерации эквивалентных программ для языков Kotlin и Java
      • 3.1.1. Алгоритм работы фреймворка Hephaestus
      • 3.1.2. Резюме
    • 3.2. Описание процесса компиляции сгенерированных программ и тестового оракула
      • 3.2.1. Резюме
    • 3.3. Вывод по разделу
  • 4. Разработка прототипа
    • 4.1. Архитектура прототипа
    • 4.2. Генератор случайных программ
      • 4.2.1. Реализация генерации эквивалентных программ на ЯП Kotlin и Java
      • 4.2.2. Реализация gRPC сервера
      • 4.2.3. Улучшение и доработка генератора IR
      • 4.2.4. Улучшение и доработка трансляторов
    • 4.3. Тестовый оракул
      • 4.3.1. Реализация gRPC клиента
      • 4.3.2. Реализация компиляции и запуска сгенерированных программ
      • 4.3.3. Реализация модуля замера времени компиляции и выполнения скомпилированных программ
    • 4.4. Резюме
  • 5. Тестирование
    • 5.1. Описание методики тестирования
    • 5.2. Результаты тестирования прототипа
    • 5.3. Анализ результатов
    • 5.4. Резюме
  • 1. Примеры сгенерированных программ
  • 2. листинги

Статистика использования

stat Количество обращений: 6
За последние 30 дней: 0
Подробная статистика