Для студентов МГУ им. Ломоносова по предмету Любой или несколько предметовОтладка макросов в языке программирования ScalaОтладка макросов в языке программирования Scala
4,9551042
2024-07-212024-07-21СтудИзба
Курсовая работа: Отладка макросов в языке программирования Scala
Описание
Содержание
3
4
Все современные языки программирования используют процедуры в том или ином виде. Процедура - именованная или иным образом иден-тифицированная часть компьютерной программы, содержащая описание определённого набора действий. Процедура может быть многократно вы-звана из разных частей программы.
Некоторые из перечисленных проблем могут быть решены при помощи макросов. Макросы специальные процедуры, которые заменяют некото-рые части программы по заданным правилам. Процесс применения мак-роса называется раскрытием макроса. Макросы делятся на лексические, которые работают с потоком лексем, и синтаксические, которые работают с абстрактными синтаксическими деревьями (далее AST).
Макросы могут упростить решение некоторых сложных задач програм-мирования. Например, с помощью макросов становится возможным ис-пользовать следующее:
| 1 | Введение | 5 | ||
| 2 | Постановка задачи | 8 | ||
| 3 | Обзор существующих работ | 9 | ||
| 3.1 | Отладка макросов в других языках программирования . . . | 9 | ||
| 3.2 | Многоуровневаяотладка .................... | 10 | ||
| 4 | Предлагаемый подход | 11 | ||
| 4.1 | Насторонекомпилятора..................... | 11 | ||
| 4.1.1 | Генерация синтетического кода . . . . . . . . . . . . . | 11 | ||
| 4.1.2 | Генерация отладочной информации для байт-кода . . | 11 | ||
| 4.1.3 | Сохранение и передача синтетического кода отладчику | 12 | ||
| 4.2 | Насторонеотладчика ...................... | 13 | ||
| 5 | Архитектура | 14 | ||
| 5.1 | Подсистемакомпилятора .................... | 14 | ||
| 5.1.1 | Создание синтетического исходного кода . . . . . . . | 14 | ||
| 5.1.2 | Передача информации отладчику . . . . . . . . . . . | 15 | ||
| 5.1.3 | Переписывание позиций в AST . . . . . . . . . . . . . | 15 | ||
| 5.2 | Модульвнутриотладчика.................... | 16 | ||
| 5.2.1 | Выборотладчика..................... | 16 | ||
| 5.2.2 | Обработка и хранение виртуальных файлов . . . . . . | 18 | ||
| 5.2.3 | Работа с API отладчика в IntelliJ IDEA . . . . . . . . | 19 | ||
| 5.2.4 | Некоторые дополнительные особенности . . . . . . . . | 21 | ||
| 6 | Переписывание позиций в абстрактных синтаксических де- | |||
| ревьях | 22 | |||
3
| 6.1 | Использования механизма установки позиций парсера на | ||
| синтетическомкоде. ....................... | 22 | ||
| 6.2 | Обход AST и переписывание позиций ¾вручную¿ . . . . . . . | 22 | |
| 7 | Заключение | 24 | |
| 8 | Список литературы | 25 | |
4
- Введение
Все современные языки программирования используют процедуры в том или ином виде. Процедура - именованная или иным образом иден-тифицированная часть компьютерной программы, содержащая описание определённого набора действий. Процедура может быть многократно вы-звана из разных частей программы.
- сожалению, такая абстракция не всегда достаточно гибка, так как она ограничена синтаксисом и семантикой языка программирования. На-пример, в большинстве языков программирования невозможно определить ленивые логические операции в виде процедур, так как процедуры не могут влиять на то, в каком порядке выполняются вычисления. Другой пример цикл for языка C, который поддерживает пролог с объявлением пере-менных, видимых в теле цикла.
Некоторые из перечисленных проблем могут быть решены при помощи макросов. Макросы специальные процедуры, которые заменяют некото-рые части программы по заданным правилам. Процесс применения мак-роса называется раскрытием макроса. Макросы делятся на лексические, которые работают с потоком лексем, и синтаксические, которые работают с абстрактными синтаксическими деревьями (далее AST).
Макросы могут упростить решение некоторых сложных задач програм-мирования. Например, с помощью макросов становится возможным ис-пользовать следующее:
- Реификация (сохранение артефактов времени компиляции до време-ни исполнения, например исчезнувших в результате стирания пара-метров типов полиморфных классов в JVM).
Характеристики курсовой работы
Учебное заведение
Семестр
Просмотров
1
Размер
197 Kb
Список файлов
Отладка макросов в языке программирования Scala.doc
Комментарии
Нет комментариев
Стань первым, кто что-нибудь напишет!
МГУ им. Ломоносова
Tortuga

















