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

Название: Сопоставление с образцом в языке программирования Kotlin: выпускная квалификационная работа бакалавра: 09.03.01 - Информатика и вычислительная техника ; 09.03.01_02 - Технологии разработки программного обеспечения
Авторы: Воробьев Сергей Владимирович
Научный руководитель: Ахин Марат Халимович
Другие авторы: Беляев М. А.
Организация: Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и технологий
Выходные сведения: Санкт-Петербург, 2018
Коллекция: Выпускные квалификационные работы; Общая коллекция
Тематика: kotlin; сопоставление с образцом; компилятор
Тип документа: Выпускная квалификационная работа бакалавра
Тип файла: PDF
Язык: Русский
Код специальности ФГОС: 09.03.01
Группа специальностей ФГОС: 090000 - Информатика и вычислительная техника
Ссылки: Отзыв руководителя; Рецензия
DOI: 10.18720/SPBPU/2/v18-5038
Права доступа: Доступ по паролю из сети Интернет (чтение, печать, копирование)

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

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

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

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

Аннотация

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

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

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

Оглавление

  • ВВЕДЕНИЕ
  • 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. Случайное тестирование
  • ЗАКЛЮЧЕНИЕ
  • СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
  • ПРИЛОЖЕНИЕ А. Грамматика задания шаблонов для сопоставления
  • ПРИЛОЖЕНИЕ Б. Исходный код парсера шаблонов для сопоставления

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

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