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

Название: Анализ инициализированности в языке Kotlin: выпускная квалификационная работа бакалавра: направление 09.03.01 «Информатика и вычислительная техника» ; образовательная программа 09.03.01_02 «Технологии разработки программного обеспечения»
Авторы: Динмухаметов Марат Линарович
Научный руководитель: Ахин Марат Халимович
Организация: Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и технологий
Выходные сведения: Санкт-Петербург, 2022
Коллекция: Выпускные квалификационные работы; Общая коллекция
Тематика: безопасная инициализация; Kotlin; система типов и эффектов; safe initialization; type-and-effect system
Тип документа: Выпускная квалификационная работа бакалавра
Тип файла: PDF
Язык: Русский
Уровень высшего образования: Бакалавриат
Код специальности ФГОС: 09.03.01
Группа специальностей ФГОС: 090000 - Информатика и вычислительная техника
DOI: 10.18720/SPBPU/3/2022/vr/vr22-988
Права доступа: Доступ по паролю из сети Интернет (чтение, печать, копирование)
Ключ записи: ru\spstu\vkr\17143

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

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

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

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

Аннотация

Тема выпускной квалификационной работы: «Анализ инициализированности в языке Kotlin».Данная работа посвящена созданию анализа для нахожденияошибок инициализации в языке Kotlin. В ходе данной работы решались следующие задачи:•Анализ существующих решений по поиску ошибок инициализации в языках программирования.•Разработка анализа для нахождения небезопасной инициализации в языке Kotlin.•Создание прототипа, реализующего данный анализ.•Тестирование прототипа.Разработанный подход основан на системе типов и эффектов. Онсобирает информацию об использовании полей и методов, чтобы найти доступ к еще не инициализированным полям.В результате данной работы реализован прототип анализа инициализированности в языке Kotlin, который способен находить различные ошибки инициализации. По результатам тестирования прототипаподход, предложенный в рамках данной работы, может быть использован для поиска ошибок инициализации в языке Kotlin. При этомостается открытым вопрос производительности данного анализа и более полной поддержки сложных возможностей языка Kotlin.

The topic of the thesis work: «Safe initialization analysis for theKotlin language».Thisworkisdevotedtothecreationofanalysisforfindinginitialization errors in the Kotlin language. In this work the followingtasks were solved:•Analysis of existing solutions for finding initialization errors inprogramming languages.•Design of analysis for finding initialization errors in Kotlin.•Creation of a prototype which implements this analysis.•Testing and evaluation of the prototype.The developed approach is based on a type-and-effect system. Itcollects information about the use of fields and methods to find accessto fields that have not yet been initialized.As the result of this work, a prototype of safe initialization analysishas been implemented for Kotlin, which is able to find various initializationerrors.Basedontheresultsoftestingtheprototype,theapproachproposed in this work can be used to find initialization errors in Kotlin.At the same time, the question of its performance remains open.

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

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

Оглавление

  • 1. Проблема
    • 1.1. Резюме
  • 2. Обзор существующих решений
    • 2.1. Безопасная инициализация в языке Kotlin
    • 2.2. Инициализация в языке Swift
    • 2.3. Подходы, основанные на системах типов и эффектов
      • 2.3.1. Typestate полиморфизм
      • 2.3.2. Маскирующие типы
      • 2.3.3. Freedom before commitment
      • 2.3.4. Безопасная инициализация для языка Scala 3
    • 2.4. Резюме
  • 3. Постановка задачи
  • 4. Дизайн
    • 4.1. Выбор базового подхода для анализа инициализированности в языке Kotlin
    • 4.2. Детали выбранного подхода
      • 4.2.1. Эффекты и потенциалы
      • 4.2.2. Проверка эффектов
      • 4.2.3. Full-construction analysis
      • 4.2.4. Definite assignment
    • 4.3. Проблемы подхода для языка Kotlin
      • 4.3.1. Блоки инициализации
      • 4.3.2. Отложенная инициализация
      • 4.3.3. Extension receivers
      • 4.3.4. Делегаты
    • 4.4. Резюме
  • 5. Создание прототипа
    • 5.1. Система типов и эффектов
    • 5.2. Интеграция в компилятор
      • 5.2.1. Реализация прототипа
    • 5.3. Реализация FCA
    • 5.4. Резюме
  • 6. Тестирование
    • 6.1. Резюме
  • ПРИЛОЖЕНИЕ. ЛИСТИНГИ КОДА ЭФФЕКТОВ И ПОТЕНЦИАЛОВ

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

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