Details
Title | Сопоставление с образцом в языке программирования Kotlin: выпускная квалификационная работа бакалавра: 09.03.01 - Информатика и вычислительная техника ; 09.03.01_02 - Технологии разработки программного обеспечения |
---|---|
Creators | Воробьев Сергей Владимирович |
Scientific adviser | Ахин Марат Халимович |
Other creators | Беляев М. А. |
Organization | Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и технологий |
Imprint | Санкт-Петербург, 2018 |
Collection | Выпускные квалификационные работы ; Общая коллекция |
Subjects | kotlin ; сопоставление с образцом ; компилятор |
Document type | Bachelor graduation qualification work |
File type | |
Language | Russian |
Level of education | Bachelor |
Speciality code (FGOS) | 09.03.01 |
Speciality group (FGOS) | 090000 - Информатика и вычислительная техника |
Links | Отзыв руководителя ; Рецензия |
DOI | 10.18720/SPBPU/2/v18-5038 |
Rights | Доступ по паролю из сети Интернет (чтение, печать, копирование) |
Record key | RU\SPSTU\edoc\57442 |
Record create date | 11/21/2018 |
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 |
Данная выпускная работа бакалавра посвящена разработке и внедрению возможностей механизма сопоставления с образцом в языке программирования Kotlin. Рассмотрены дизайнерские решения разработчиков популярных языков программирования, их преимущества и недостатки. Описаны артефакты разработки дизайна задания шаблонов и конвенции доступа к данным объекта, с учётом специфики языка Kotlin; алгоритмы обработки, анализа и преобразования исходного программного кода в байткод для Java Virtual Machine. В результате работы была создана изменённая версия компилятора, позволяющая обрабатывать программный код, использующий сопоставление с образцом.
Network | User group | Action |
---|---|---|
ILC SPbPU Local Network | All |
|
Internet | Authorized users SPbPU |
|
Internet | Anonymous |
|
- ВВЕДЕНИЕ
- 1. Обзор современных подходов к реализации
- 1.1. Использование сопоставления с образцом
- 1.2. Сопоставление с образцом
- 1.2.1. Разложение в кортеж
- 1.2.2. Разложение в список
- 1.2.3. Неявный деконструктор
- 1.2.4. Явный деконструктор
- 1.2.5. Шаблоны свойств
- 1.2.6. Сравнение с константами
- 1.2.7. Сравнение с переменными
- 1.2.8. Сравнение с выражением
- 1.2.9. Проверка типа
- 1.2.10. Пустой шаблон
- 1.2.11. Сопоставление с хвостом
- 1.2.12. Конъюнкция шаблонов
- 1.2.13. Дизъюнкция шаблонов
- 1.2.14. Шаблоны с псевдонимами
- 1.2.15. Вложенность шаблонов
- 1.2.16. Дополнительная проверка
- 1.2.17. Шаблоны отображения
- 1.2.18. n+k шаблоны
- 1.3. Актуальные реализации сопставления с образцом
- 1.4. Возможности Kotlin
- 2. Постановка задачи
- 3. Проектирование дизайна сопоставления
- 3.1. Синтаксис
- 3.1.1. Сопоставление с шаблоном
- 3.1.2. Элемент шаблона
- 3.1.3. Шаблон выражения
- 3.1.4. Шаблон объявления
- 3.1.5. Шаблон разложения
- 3.1.6. Шаблон сопоставления с хвостом списка
- 3.2. Конвенции
- 3.2.1. Обратная совместимость
- 3.1. Синтаксис
- 4. Проектирование алгоритмов сопоставления
- 4.1. Алгоритм анализа сопоставления
- 4.2. Алгоритм определения полноты списка условий
- 4.3. Алгоритм генерации сопоставления
- 4.4. Ограничения
- 5. Реализация алгоритмов
- 5.1. Устройство компилятора Kotlin
- 5.2. Добавление новой функциональности
- 5.2.1. Реализация разбора
- 5.2.2. Реализация анализа
- 5.2.3. Реализация генерации байткода
- 5.2.4. Результаты
- 6. Примеры программ с сопоставлением на языке Kotlin
- 6.1. Упрощение поддерева бинарного выражения
- 6.2. Расчёт размера списка присоединений JoinList
- 6.3. Проверка типовых параметров класса
- 6.4. Работа с потоком чисел, заданных в строке
- 7. Тестирование
- 7.1. Функциональное тестирование
- 7.2. Случайное тестирование
- ЗАКЛЮЧЕНИЕ
- СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
- ПРИЛОЖЕНИЕ А. Грамматика задания шаблонов для сопоставления
- ПРИЛОЖЕНИЕ Б. Исходный код парсера шаблонов для сопоставления
Access count: 110
Last 30 days: 0