Для студентов СПбГУ по предмету ДругиеРазработка и исследование механизмов интерпретации мультиплатформенных Kotlin-функций во время компиляцииРазработка и исследование механизмов интерпретации мультиплатформенных Kotlin-функций во время компиляции
2024-08-032024-08-03СтудИзба
ВКР: Разработка и исследование механизмов интерпретации мультиплатформенных Kotlin-функций во время компиляции
Описание
Оглавление
3
Компиляторы для современных языков программирования должны уметь эффективно использовать ресурсы компьютера при генерации программ, выполнять сложные оптимизации и учитывать архитектуру процессора, для которого выполняется трансляция. Основные показа-тели, которые стремиться оптимизировать компилятор, – это размер итоговой программы и время ее выполнения. В общем случае задача ге-нерации оптимального целевого кода из исходной программы является неразрешимой [1], следовательно, при разработке компилятора необхо-димо вводить дополнительные эвристики, которые позволят получить эффективный код.
Язык Kotlin — это относительно молодой язык программирования, разрабатываемый компанией JetBrains. Из основных особенностей язы-ка можно выделить его простоту, лаконичность и полную совмести-мость с Java [8]. Kotlin стремительно развивается, и одно из направле-ний его развития — это улучшение компилятора.
Компилятор извлекает различную информацию о программе, на-пример, размеры массивов, имена файлов, имена классов, точное место
Язык Kotlin позволяет помечать свойства (properties [12]) модифи-катором const, который означает, что
1. | Введение | 4 | |
2. | Постановка задачи | 6 | |
3. | Обзор предметной области | 7 | |
3.1. | Основныепонятия....................... | 7 | |
3.2. | Применение механизма выполнения функций на этапе | ||
компиляции в Kotlin . . . . . . . . . . . . . . . . . . . . . | 8 | ||
3.3. | Обзор механизма выполнения функций на этапе компи- | ||
ляции в других языках программирования . . . . . . . . | 20 | ||
3.4. | Выводы и анализ результатов . . . . . . . . . . . . . . . . | 29 | |
4. | Реализация прототипа | 31 | |
4.1. | Требования, выдвигаемые к прототипу . . . . . . . . . . . | 31 | |
4.2. | Способы реализации прототипа . . . . . . . . . . . . . . . | 32 | |
4.3. | Архитектурапрототипа ................... | 35 | |
4.4. | Особенностиреализации . . . . . . . . . . . . . . . . . . . | 38 | |
4.5. | Основные ограничения и правила . . . . . . . . . . . . . . | 42 | |
4.6. | Архитектура оптимизатора языка . . . . . . . . . . . . . | 43 | |
5. | Апробация | 46 | |
5.1. | Демонстрация результатов . . . . . . . . . . . . . . . . . . | 46 | |
5.2. | Проверкакорректности. . . . . . . . . . . . . . . . . . . . | 51 | |
5.3. | Тестирование производительности . . . . . . . . . . . . . | 52 | |
6. | Заключение | 54 | |
Список литературы | 55 |
3
- Введение
Компиляторы для современных языков программирования должны уметь эффективно использовать ресурсы компьютера при генерации программ, выполнять сложные оптимизации и учитывать архитектуру процессора, для которого выполняется трансляция. Основные показа-тели, которые стремиться оптимизировать компилятор, – это размер итоговой программы и время ее выполнения. В общем случае задача ге-нерации оптимального целевого кода из исходной программы является неразрешимой [1], следовательно, при разработке компилятора необхо-димо вводить дополнительные эвристики, которые позволят получить эффективный код.
Язык Kotlin — это относительно молодой язык программирования, разрабатываемый компанией JetBrains. Из основных особенностей язы-ка можно выделить его простоту, лаконичность и полную совмести-мость с Java [8]. Kotlin стремительно развивается, и одно из направле-ний его развития — это улучшение компилятора.
Компилятор извлекает различную информацию о программе, на-пример, размеры массивов, имена файлов, имена классов, точное место
- коде где была вызвана функция и т.д. Эту информацию можно эф-фективно использовать для оптимизации итоговой программы. Напри-мер, часть функций (или даже отдельных выражений) можно выпол-нить еще на этапе компиляции, тем самым на этапе выполнения про-граммы результат уже будет известен, и программа будет исполняться быстрее, а её код будет компактнее.
Язык Kotlin позволяет помечать свойства (properties [12]) модифи-катором const, который означает, что
Характеристики ВКР
Предмет
Учебное заведение
Семестр
Просмотров
1
Размер
1,17 Mb
Список файлов
Разработка и исследование механизмов интерпретации мультиплатформенных Kotlin-функций во время компиляции.doc