Для студентов СПбГУ по предмету ДругиеРазработка и исследование механизмов интерпретации мультиплатформенных Kotlin-функций во время компиляцииРазработка и исследование механизмов интерпретации мультиплатформенных Kotlin-функций во время компиляции
4,945826
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
СПбГУ
Tortuga















