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; алгоритмы обработки, анализа и преобразования исходного программного кода в байткод для Java Virtual Machine. В результате работы была создана изменённая версия компилятора, позволяющая обрабатывать программный код, использующий сопоставление с образцом.
Document access rights
Network | User group | Action | ||||
---|---|---|---|---|---|---|
ILC SPbPU Local Network | All | |||||
Internet | Authorized users SPbPU | |||||
Internet | Anonymous |
Table of Contents
- ВВЕДЕНИЕ
- 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. Случайное тестирование
- ЗАКЛЮЧЕНИЕ
- СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
- ПРИЛОЖЕНИЕ А. Грамматика задания шаблонов для сопоставления
- ПРИЛОЖЕНИЕ Б. Исходный код парсера шаблонов для сопоставления
Usage statistics
Access count: 110
Last 30 days: 0 Detailed usage statistics |