Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемМихаил Ларюшкин
1 Работа по дисциплинеТехнологии программирования Тема: Метапрограммирование Выполнили: Савельев А. Л. Воробьев Д. Н. Проверил: Куприянов Ю.
2 1.Метапрограммирование Метапрограммирование создание программ, которые создают другие программы как результат своей работы (либо частный случай изменяющие или дополняющие себя во время выполнения).
3 2.Содержание - генераторы кода - шаблоны С++ - виртуальные функции С++ - самомодифицирующийся код
4 3. Генераторы кода - теоретическое введение - Lex - Yacc - Lex & Yacc
5 4.Шаблоны С++ Парадигма обобщенного программирования: Решить, какие требуются алгоритмы; параметризовать их так, чтобы они могли работать со множеством подходящих типов данных
6 5. Виртуальные функции -vtbl -абстрактные классы
7 6. Самомодификация кода - Интроспекция - Интерпретация произвольного кода - Динамическое использование динамических библиотек
8 7. Интерпретатор математических формул - Грамматика: EXPR-> [ | ]TERM MORETERMS MORETERMS-> TERM MORETERMS | TERM MORETERMS | TERM-> FACTOR MOREFACTORS MOREFACTORS-> FACTOR MOREFACTORS | FACTOR MOREFACTORS | FACTOR-> POW MOREPOWS MOREPOWS-> POW{ }0 | POW-> | | EXPR | FUNC EXPR FUNC-> | | | | | | |
9 8. Интерпретатор математических формул - Лексический анализатор - Взаимодействие анализаторов - Оптимизатор - Сохранение дерева вывода - Интерпретатор
10 9. Выводы Метапрограммирование является инструментом, уменьшающим время кодирование и улучшающим качество программ. Оно применимо в тех случаях, когда есть данные различных сущностей и с ними требуется производить похожие между собой манипуляции, т. е. абстрактные алгоритмы работы с ними одинаковы.
11 10. Выводы Ухудшение временных характеристик работы программы Уменьшение времени разработки Генераторы кода 55 Шаблоны 24 Виртуальные функции 33 Самомодификация кода 42
12 Демонстрация интерпретатора математических формул
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.