Онлайн поддержка
Все операторы заняты. Пожалуйста, оставьте свои контакты и ваш вопрос, мы с вами свяжемся!
ВАШЕ ИМЯ
ВАШ EMAIL
СООБЩЕНИЕ
* Пожалуйста, указывайте в сообщении номер вашего заказа (если есть)

Войти в мой кабинет
Регистрация
ГОТОВЫЕ РАБОТЫ / КУРСОВАЯ РАБОТА, ПРОГРАММИРОВАНИЕ

Использование и реализация инструментов метапрограммирования в компилируемых языках

beskonechno 750 руб. КУПИТЬ ЭТУ РАБОТУ
Страниц: 30 Заказ написания работы может стоить дешевле
Оригинальность: неизвестно После покупки вы можете повысить уникальность этой работы до 80-100% с помощью сервиса
Размещено: 24.12.2020
Добрый день! Уважаемые студенты, Вашему вниманию представляется курсовая работа на тему: «Использование и реализация инструментов метапрограммирования в компилируемых языках» Оригинальность работы 95%
Введение

Введение История языков программирования может быть описана диалектически, как борьба желания иметь больше слоев абстракции с требованиями к производительности. Влияние первого фактора можно проследить в развитии высокоуровневых языков программирования, на чем я хотел бы остановиться подробнее. В «реальном мире» многие довольно сложные абстракции получили крайне широкое распространение — абстракция интерфейсов баз данных, управление потоками, абстракции памяти (разделяемая память, каналы и пр.). Одни из основных причин почему разработчиков так привлекают абстракции, это желание как можно меньше работать с низкоуровневыми деталями, всеми любимый принцип избегания дублирования кода, а также потребность выражать сложные концепции легко читаемым способом. Все эти цели могут быть достигнуты, в частности, с помощью метапрограммирования. Идеи метапрограммирования на практике, вероятно, впервые стали использоваться в языке Lisp, в виде макросов. Весьма популярный ранее, сейчас Lisp не представлен в индустрии сколь-либо значительно. ?
Содержание

Оглавление Оглавление 2 Введение 3 Метапрограммирование с современных языках 4 Цель работы 6 Постановка задачи 7 Компилятор Grit 9 Выбор инструментов 9 Архитектура компилятора 12 Токенизация 13 Построение AST 15 Кодогенерация 19 Язык Grit 22 Результаты 27 Заключение 29 Список литературы 31
Список литературы

Список литературы Компиляторы: принципы, технологии и инструментарий — 2 изд. [Книга] / авт. Ахо Альфред В. [и др.]. - 2008 : Вильямс. Введение В Метапрограммирование [В Интернете] / авт. Бартлетт Д. // Ibm.com. - 2005 г.. - https://www.ibm.com/developerworks/ru/library/l-metaprog1/index.html. Lambda Lifting: Transforming Programs to Recursive Equations [Книга] / авт. Джонсон Томас. - [б.м.] : ACM Press, 1985. Modular Domain Speci?c Languages and Tools [Книга] / авт. Худак Пол. - New Haven : IEEE Computer Society Press, Department of Computer Science, Yale University, 1998. The Architecture of Open Source Applications [Книга] / авт. Браун Эми и Уилсон Грег. - Dallas, TX : lulu, 2012.
Отрывок из работы

Другой стороной вопроса является изучение эффекта внедрения такого функционала на размер производимых исполняемых файлов и производительность программы. Как было показано, для реализации инструментов метапрограммирования часто необходимо модифицировать AST – этот процесс, обычно, не влияет на скорость выполнения самой программы, но может существенно замедлить компиляцию и увеличить размер итогового исполняемого файла. На скорость же может повлиять внедрение более продвинутых инструментов, которые полагаются на высокоуровневый функционал – функции как объекты первого класса, функции верхнего уровня и так далее – эти языковые особенности сами по себе довольно дороги в реализации, а в купе с метапрограммными инструментами, основанными на них, могут сильно ударить по производительности – за счет роста количества указателей и прыжков. Обзор некоторых способов реализации таких инструментов метапрограммирования тоже можно считать удавшимся. Основная гипотеза – о том, что они будут в основном полагаться на модификации AST во время компиляции –, также подтвердилась, и удалось сформулировать более обобщенное описание такого подхода. В частности, реализация декораторов в получившемся компиляторе полагается на модификацию блоков кода декорируемых функции и обновление их исходного синтаксического дерева. Поле для работы и исследования в этой сфере почти безгранично – создание новых инструментов, упрощение использования существующих, оптимизации времени компиляции и времени исполнения, однако основная цель достигнута – было показано, что метапрограммирование в компилируемых языках может быть и простым в использовании, и мощным одновременно. Вряд ли язык программирования, выработанный в процессе этой работы, получит распространение, но хочется надеяться в будущем увидеть «ренессанс» техник метапрограммирования в массовой разработке.
Условия покупки ?
Не смогли найти подходящую работу?
Вы можете заказать учебную работу от 100 рублей у наших авторов.
Оформите заказ и авторы начнут откликаться уже через 5 мин!
Похожие работы
Курсовая работа, Программирование, 22 страницы
400 руб.
Курсовая работа, Программирование, 12 страниц
625 руб.
Курсовая работа, Программирование, 36 страниц
600 руб.
Курсовая работа, Программирование, 38 страниц
500 руб.
Служба поддержки сервиса
+7 (499) 346-70-XX
Принимаем к оплате
Способы оплаты
© «Препод24»

Все права защищены

/slider/1.jpg /slider/2.jpg /slider/3.jpg /slider/4.jpg /slider/5.jpg