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 PDF
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
Read Print Download
Internet Authorized users SPbPU
Read Print Download
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. Обратная совместимость
  • 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

Detailed usage statistics