Table | Card | RUSMARC | |
Allowed Actions: –
Action 'Read' will be available if you login or access site from another network
Action 'Download' will be available if you login or access site from another network
Group: Anonymous Network: Internet |
Annotation
Тема выпускной квалификационной работы: «Анализ инициализированности в языке 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.
Document access rights
Network | User group | Action | ||||
---|---|---|---|---|---|---|
ILC SPbPU Local Network | All |
![]() ![]() ![]() |
||||
Internet | Authorized users SPbPU |
![]() ![]() ![]() |
||||
![]() |
Internet | Anonymous |
Table of Contents
- 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. Резюме
- ПРИЛОЖЕНИЕ. ЛИСТИНГИ КОДА ЭФФЕКТОВ И ПОТЕНЦИАЛОВ
Usage statistics
|
Access count: 12
Last 30 days: 0 Detailed usage statistics |